Strona: [  << <   1   > >>  ]  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
Pokaż profil PAWKO  Wyślij email do PAWKO   
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
Pokaż profil PAWKO  Wyślij email do PAWKO   
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


_____________________________________________
www.napadlek.prv.pl ruszyla od nowa zapraszam

18-05-2003 20:21
Pokaż profil napadlek  Wyślij email do napadlek   Odwiedź stronę napadlek       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
Pokaż profil m-a-x  Wyślij email do m-a-x   
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
Pokaż profil PAWKO  Wyślij email do PAWKO   
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1