När man vill skicka två olika data mellan två program med hjälp av winsock (TCP), så är det lätt hänt att meddelandena skickas för nära varandra, och den som tar emot datan läser allt som en enda "klump". Jag har ingen aning ifall det funkar men du kan väl testa att lägga in en några Bästa sättet är att komma på ett sätt att skicka meddelandets längd innan datan börjar sändas... Om du skall köra inom en & samma dator är det dock bättre att titta på pipelines (tror det heter så), vet dock inte principen för det... :/ Du får söka helt enkelt1 :) Start och slut tecken bör användas om du inte redan gör detta så du vet att all data har kommit i "hamn". Om problemet är att data försvinner eller blandas tyder det på något i hårdvaran. Ut bufferten skall inte kunna "blanda sig".. Har du funderat på atta nvända olika portar för dina program eller skickar din programm likadan information? Kan du förtydliga; är det två meddelanden från dator1 till dator2 som kommer blandade??? Det skall inte vara möjligt om du använder TCP (däremot med UDP). ...och om felet inte är att datat blandas ihop, så stämmer det som sagts ovan: TCP är en <b>ström</b>, och det är upp till dig att skicka tecken i strömmen som anger var ett meddelande börjar och slutar. Det finns inga garantier att 32 tecken som skickas kommer komma fram som just 32 tecken. Okej, hursomhelst så är det bara två kommandon som skickas från servern till klienten precis efter varandra. Gör om protokollet då... Ha med längd på meddelandet innan, t.ex.data mellan winsock blandas
Nån som har något bra tips på att förhindra detta?Sv: data mellan winsock blandas
några millisekunder sleep efter varje skick...
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Sv: data mellan winsock blandas
Sv: data mellan winsock blandas
/Johan Sv: data mellan winsock blandas
Sv: data mellan winsock blandas
Eller menar du att dator1 skickar till dator2 samtidigt som dator2 skickar till dator1?
/Göran RoseenSv: data mellan winsock blandas
Tips: I dagens läge är det rätt hippt att koda meddelandena med XML. Då hittar du lätt början och slut, och kan lätt lägga till mer datastrukturer utan att behöva koda om så mycket.
/Göran RoseenSv: data mellan winsock blandas
När jag sedan läser datan i Recieve data i klienten så kommer de två kommandona som ett paket.
Typ såhär:
Från servern -> "showmessage:tjoho"
Från servern -> "showmessage:hejhopp"
Till klienten <- "showmessage:tjohoshowmessage:hejhopp"
Man kan såklart ha något som visar att det hela är slut, men det skulle kännas ännu enklare att ha någon slinga som kontrollerar om winsock är klar med att skicka data eller liknande, innan den skickar iväg något nytt helt enkelt...Sv: data mellan winsock blandas
data(LÄNGD_PÅ_ALLT_EFTER_NÄSTA_KOLON):showmessage:blaha