Tjena. Mitt förslag är att du skapar en klass som tar hand om all kommunikation för en klient.Winsock med fler sessioner
Sitter och meckar med mina winsock-grejjer. Allt funkar prima - tills jag nu testar att köra flera klienter mot min server. Servern accepterar flera klienter som loggar in men sen tar någon (endast en) av klienterna över och "låser" för alla de andra.
För var klient som vill logga in så startar jag en ny winsock session.
Sen laddar jag ner det som kommer till en variabel.
Call sckServer(index).GetData(indata, vbString, bytesTotal)
Min fråga är egentligen hur det hela hänger samman när man har flera trådar som ska kunna köras samtidigt. Alltså, jag trycker här in data i variabeln "indata" som jag fått från något exempel här på sidan.
Men, är det inte så att när nästa klient vill logga in så trycker jag ner ny data i samma variabel och alltså ersätter datat i variabeln med ny data?
Eller sköts det som de ska för att man startar en ny session som ser ut:
Private Sub sckServer_DataArrival(index As Integer, ByVal bytesTotal As Long)
...där jag har en pekare på en viss index..
Måste alla variabler sen i koden under sckServer ha (index) för att inte hoppa över till någon annan session och förstöra där?
/AlexSv: Winsock med fler sessioner
I praktiken blir det så att så fort du accepterat en ny anslutning så skapar du ett nytt objekt av din klass och skickar in du anslutning där. I dett objektet blir då alla variabler endast tillgängliga för just den anslutningen