Looking for c# Keywords? Try Ask4Keywords

C# LanguageAsynchroner Sockel


Einführung

Durch die Verwendung von asynchronen Sockets kann ein Server auf eingehende Verbindungen warten und in der Zwischenzeit eine andere Logik ausführen, im Gegensatz zu synchronem Socket, wenn er abhört. Er blockiert den Haupt-Thread und die Anwendung reagiert nicht mehr und das Einfrieren wird erst nach dem Verbindungsaufbau eines Clients eingestellt.

Bemerkungen

Socket und Netzwerk

Zugriff auf einen Server außerhalb meines eigenen Netzwerks Dies ist eine häufige Frage, und wenn sie gefragt wird, wird sie meistens als Thema gekennzeichnet.

Serverseite

Im Netzwerk Ihres Servers müssen Sie den Router portieren, um ihn an Ihren Server weiterzuleiten.

Zum Beispiel PC, auf dem der Server läuft:

lokale IP = 192.168.1.115

Der Server hört auf Port 1234.

Leiten Sie eingehende Verbindungen am Port 1234 Router an 192.168.1.115

Client-Seite

Das einzige, was Sie ändern müssen, ist die IP. Sie möchten sich nicht mit Ihrer Loopback-Adresse verbinden, sondern mit der öffentlichen IP-Adresse des Netzwerks, auf dem Ihr Server läuft. Diese IP erhalten Sie hier .

 _connectingSocket.Connect(new IPEndPoint(IPAddress.Parse("10.10.10.10"), 1234));

Nun erstellen Sie eine Anforderung für diesen Endpunkt: 10.10.10.10:1234 Wenn Sie den Router durch den Eigenschafts-Port- 10.10.10.10:1234 wird die Verbindung zwischen Server und Client problemlos hergestellt.

Wenn Sie eine Verbindung zu einer lokalen IP-Adresse herstellen möchten, müssen Sie die Portnummer nicht auf 192.168.1.178 oder ähnliches ändern.

Daten senden:

Daten werden in Byte-Array gesendet. Sie müssen Ihre Daten in ein Byte-Array packen und auf der anderen Seite entpacken.

Wenn Sie mit Socket vertraut sind, können Sie auch versuchen, Ihr Byte-Array vor dem Senden zu verschlüsseln. Dadurch wird verhindert, dass jemand Ihr Paket stiehlt.

Asynchroner Sockel Verwandte Beispiele