View Single Post
Staro 24.10.2009., 00:57   #7
Dungeon Keeper
Registered User
 
Datum registracije: May 2008
Lokacija: Rijeka
Postovi: 39
Vidi,

Server strana:
Dim L2 As String
L2 = "Ja sam server"
Winsock1.SendData L2

Klijent strana (Data Arrival Event):
Dim strData as String
sockMain.GetData strData

U varijablu strData dobivaš tekst koji si poslao, u ovom slučaju "Ja sam server"
Tekst može doći i u više navrata kao "Ja sam " pa "server" i tada se Data Arrival Event pokrene 2 puta. Zato bi trebao napraviti funkciju koja će sve stringove koji dolaze slagati u neki buffer, i drugu funkciju koja će čitati buffer i raspoređivati stringove iz njega i čistiti ga od onoga što rasporedi.

Ti samo sa stringom "Ja sam server" neznaš šta raditi, ali recimo ako pošalješ "NAME:Ja sam server" i taj string rastaviš na "NAME:" i ostatak odna ćeš znat da ti dolazi ime nečega pa imaš

IF Left$(strData, 5) = "NAME:" Then SetPlayerName(strData)

Ako je početak stringa koji je došao = "NAME:" zoveš funkciju SetPlayerNAme koja će postaviti ime igrača na nešto što si isprogramirao u njoj.

Opet kao šta sam spomenuo iznad, string nemora doć u cjelosti kako si ga poslao nego u više navrata pa ti može doć

"NAM" pa "E:Ja sam ser" pa "ver" zato staviše na početak <m> i na kraj </m> i ne radiš ništa sa stringom dok ne dođe cijeli, tj dok ne pronađeš <m> i </m> u njemu.

Nije Winsocket toliko trivijalan koliko se čini, mislim je što se osnovnih metoda tiče, ali ako radiš nešto složenije tipa igru moraš isprogramirati svoj okvir i svoj protokol.
Dungeon Keeper je offline   Reply With Quote