ďťż
Lemur zaprasza
Strona: [ > ] z 1 Autor Temat: Znowu Winsock PAWKO Typ: neutral Postów: 42 Zarejestrowany: Mar 2003 Znowu Winsock Mam problem. Aplikacja Klienta wysyla zapytanie o dyski. Serwer wysyła po kolei rodzaje dysków jakie posiada. Kod: LiczbaDyskow = frmServer.drvDrive.ListCount For i = 0 To LiczbaDyskow - 1 DoEvents DriveLabel = frmServer.drvDrive.List(i) DriveType = GetDriveType(Mid(DriveLabel, 1, 3)) SendData ("Drive:" & DriveLabel & DriveType) Next Problem pojawia sie w tym miejscu. Klient dostaje informacje o dyskach w jednym łańcuchu (np. c:e i do kontrolki ImageCombo dodaje mi sie tylko jedna pozycja (a:c:e Prosze o pomoc!!! 18-05-2003 02:19 PAWKO Typ: neutral Postów: 42 Zarejestrowany: Mar 2003 Tam powyżej nie ma być tych buziek tylko (bez spacji) c: d: e: 18-05-2003 02:21 napadlek Ciapek Typ: neutral Postów: 117 Zarejestrowany: Feb 2003 Taka troche bezsensowna procedurka: Dim Str(30) As String Dim Dyski As String Dim L As Integer Dim L2 As Integer Dim char As String L2 = 1 Dyski = "c:e:f:g:" For L = 1 To Len(Dyski) char = Mid(Dyski, L, 1) Str(L2) = Str(L2) + char If char = ":" Then L2 = L2 + 1 Next L 'Wiem ze to troche bezsensowne obciążac program, ale ta procedura wydłubie ze stringu Dyski pojedyncze partycje _____________________________________________ ruszyla od nowa zapraszam 18-05-2003 20:21 3392810 m-a-x Typ: neutral Postów: 366 Zarejestrowany: Jan 2003 Hmm... Też kiedyś miałem z tym problem. Można to rozwiązać na dwa sposoby. Albo za pomocą funkcji która czeka na potwierdenie odbioru przez drugą stronę informacji albo funkcji Sleep. chociaż ta ostatnia nie wiem czemu u mnie nie działała wiec napiszę tu tylko tą pierwszą możliwość. Więc za każdym razem gdy serwer wyśle jakąś informacje np jeden dysk czeka na potwierdzednie odbioru. Czyli np: winsock1.senddata( "c:" ) wait gdzie wait to: Public Function Wait() Do While reSponse <> "Ok" 'wait for respond DoEvents Loop reSponse = "" End Function do zdażenia Winsock1_DataArrival dodajemy kod: Winsock1.GetData oData, vbString If oData = "Ok" Then reSponse = "Ok" I już. z tym że po stronie serwera musisz dodać kod wysyłający za każdym razem po odebraniu czegokolwiek stringa "Ok". Czyli: Winsock1_DataArrival ... Winsock1.SendData( "Ok" ) Mam nadzieje że to ci pomoże. (Jest to bardziej uniwersalny przykład niż ten poprzedni) [Post edytowany dnia 18-05-2003 20:30 przez m-a-x] _____________________________________________ Problemem zazwyczaj nie jest brak osób znających odpowiedź a zadanie właściwego pytania! 18-05-2003 20:29 PAWKO Typ: neutral Postów: 42 Zarejestrowany: Mar 2003 Dzięki. Działa bardzo dobrze. Teraz kombinuje nad zawartością tych dysków. 24-05-2003 20:21 Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20 Strona: [ > ] z 1 |