Table of Contents
Snabb och enkel PC-reparation
Du kan se en felpresentation som säger att det finns flera Winsock-anslutningar. Det finns flera sätt att lösa det här problemet, så vi kommer att överklaga dem visuellt inom kort.Vanligtvis är en fjärrdatorapplikation utformad för att ansluta ett antal klienter till ett kylskåp. För servrar med betydande prestanda används vanligtvis flera trådar för att hantera flera användares onlineanslutningar. Winsock använder flera olika innehållssätt som du måste komma igång med medan du väntar på hur många personer ska logga in.
Efter att ha accepterat Create Socket, dela upp dess ström i klientförfrågningar. Gå sedan vidare till en ny allsidig bekräftelse.
dword ProcessClient (LPVOID lpParameter) SOCKET AcceptSocket = (SOCKET) lpParameter; // Skicka in data kombinerat med enjoy. int bytesSent; int bytesRecv jämförs med till SOCKET_ERROR; char sendbuf [2000] = ""; char recvbuf [2000] antyder ""; char-timebuf [128]; sprintf (sendbuf, "Hej, det här är ett spel med sajten på% s:% d (kommandon: 1, uppsättning av, avsluta) n", ipaddr, port); bytesSent = överföring (AcceptSocket, sendbuf, strlen (sendbuf), 0); om möjligt (bytesSent == SOCKET_ERROR) printf ("Sändningsfel:% ld n", WSAGetLastError ()); gå till de särskilda skevroder; när (1) _strtime (timebuf); ZeroMemory (recvbuf, sizeof (recvbuf)); bytesRecv indikerar recv (AcceptSocket, recvbuf, 32, 0); printf ("% s klient sa:% nasiums n", timebuf, recvbuf); i fallet if (strcmp (recvbuf, "1") == 0) sprintf (sendbuf, "Du är inloggad till EN n"); // printf ("Skickade '% s' n", sendbuf); bytesSent = broadcast (AcceptSocket, sendbuf, strlen (sendbuf), 0); uppenbarligen i fall där (bytesSent == SOCKET_ERROR) printf ("Sändningsfel:% ld n", WSAGetLastError ()); Aileron besök; annars, i fall där (strcmp (recvbuf, "2") == 0) sprintf (sendbuf, "Du skrev in TVÅ n"); // printf ("Skickade '% s' n", sendbuf); bytesSent är lika med dispatch (AcceptSocket, sendbuf, strlen (sendbuf), 0); i fallet (bytesSent == SOCKET_ERROR) printf ("Sändningsfel:% ld n", WSAGetLastError ()); gå när du behöver skevroder; alltför if (strcmp (recvbuf, "exit") == 0) printf ("Klient slut n", WSAGetLastError ()); gå till skevroder; annan sprintf (sendbuf, "okänt kommando n"); // printf ("Skickade '% s' n", sendbuf); bytesSent motsvarar skicka (AcceptSocket, sendbuf, strlen (sendbuf), 0); säkert (bytesSent == SOCKET_ERROR)printf ("Sändningsfel:% ld n", WSAGetLastError ()); Gå till fenan; Fena: printf ("Klienttyper av behandlingar n"); closesocket (AcceptSocket); Returnerar 0;
Vad är skillnaden mellan dessa Main och accept i Winsock?
Det kan beskrivas som inte så stor skillnad i den bästa ()-funktionen. Vi börjar med en ny servertråd och loopar oändligt högt på _getch () tills någon gör underbar ESC, då brukar vi stänga vanligtvis serversocket och avsluta. Nu måste de flesta ta en titt på webbservertråden. Det är desamma förutom den del där du namnger koden exakt. I experimentdelen () har vi denna lilla förändring.
Winsock Multiple Connection
Winsock Mehrfachverbindung
Winsock Wielokrotne Polaczenie
Connexion Multiple Winsock
Winsock 다중 연결
Conexion Multiple Winsock
Winsock Meerdere Verbinding
Winsock Mnozhestvennoe Soedinenie
Conexao Multipla De Winsock
Connessione Multipla Winsock
