Heim  >  Artikel  >  Backend-Entwicklung  >  c# (Socket) synchrones Socket-Codebeispiel

c# (Socket) synchrones Socket-Codebeispiel

黄舟
黄舟Original
2016-12-22 13:27:131267Durchsuche

Beispiel für einen synchronen Client-Socket

Das folgende Beispielprogramm erstellt einen Client, der eine Verbindung zum Server herstellt. Der Client wird mit einem synchronen Socket erzeugt, sodass die Ausführung der Clientanwendung angehalten wird, bis der Server eine Antwort zurückgibt. Die Anwendung sendet eine Zeichenfolge an den Server und zeigt dann die vom Server zurückgegebene Zeichenfolge auf der Konsole an.

C#
using System.Net;
using System.Text;
public class SynchronousSocketClient static void StartClient() {
// Datenpuffer für eingehende Daten // Richten Sie den Remote-Endpunkt für den Socket ein.
// Dieses Beispiel verwendet Port 11000 auf dem lokalen Computer
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName())
IPAddress = ipHostInfo.AddressList [0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress,11000);
/ Erstellen Sie einen TCP/IP-Socket
Socket sender = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
// Verbinden Sie den Socket mit dem Remote-Endpunkt.
Try {
sender.Connect(remoteEP);"Socket connected to {0 }",
sender.RemoteEndPoint.ToString());
// Kodieren Sie die Datenzeichenfolge in ein Byte-Array.
byte[] msg = Encoding.ASCII.GetBytes("Dies ist ein Test// Daten über den Socket senden.
int bytesSent = sender.Send(msg);
// Die Antwort vom Remote-Gerät empfangen.
int bytesRec = sender. Receive(bytes);
Console.WriteLine("Echoed test = {0}",
Encoding.ASCII.GetString(bytes,0,bytesRec));
/ Geben Sie den Socket frei sender.Shutdown(SocketShutdown.Both);
sender.Close();
} Catch (ArgumentNullException ane) {
Console.WriteLine("ArgumentNullException : {0}",ane.ToString());
} Catch (SocketException se) {
Console.WriteLine("SocketException : {0}",se.ToString());
} Catch (Exception e) {
Console.WriteLine(" Unerwartete Ausnahme: {0}", e.ToString());
}
} Catch (Exception e) {
Console.WriteLine( e.ToString());
}
}
public static int Main(String[] args) {
StartClient();
return 0;
}
Synchronisationsserver-Socket-Beispiel Das folgende Beispielprogramm erstellt einen Server das Verbindungsanfragen von Clients empfängt. Der Server wird mit einem synchronen Socket erzeugt,
wodurch die Ausführung der Serveranwendung angehalten wird, während auf eine Verbindung vom Client gewartet wird. Die Anwendung empfängt eine Zeichenfolge vom Client,
zeigt die Zeichenfolge auf der Konsole an und gibt die Zeichenfolge dann an den Client zurück. Die vom Client kommende Zeichenfolge muss die Zeichenfolge „“,
enthalten, um das Ende der Nachricht zu signalisieren.








C#
Code kopieren

mit System
mit System.Net;
using System.Net.Sockets;
using System.Text;
public class SynchronousSocketListener {
// Eingehende Daten vom Client
public static string data = null; static void StartListening() {
// Datenpuffer für eingehende Daten
byte[] bytes = new Byte[1024]// Richten Sie den lokalen Endpunkt für den Socket ein .GetHostName gibt den Namen des
// Hosts zurück, auf dem die Anwendung ausgeführt wird.
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress = ipHostInfo.AddressList[0];IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000); 
// Erstellen einen TCP/IP-Socket. 
Socket-Listener = neuer Socket(AddressFamily.InterNetwork, 
SocketType.Stream, ProtocolType.Tcp ); 
// Binden Sie den Socket an den lokalen Endpunkt und warten Sie auf eingehende Verbindungen. 
versuchen Sie es mit { 
listener.Bind(localEndPoint); 
listener.Listen(10); 
// Beginnen Sie, auf Verbindungen zu achten. 
while (true) { 
Console.WriteLine("Warten auf eine Verbindung..."); 
// Das Programm wird angehalten, während auf eine eingehende Verbindung gewartet wird. 
Socket handler = listener.Accept(); 
data = null; 
// Eine eingehende Verbindung muss verarbeitet werden. 
while (true) { 
bytes = new byte[1024]; 
int bytesRec = handler.Receive(bytes); 
data += Encoding.ASCII.GetString(bytes,0,bytesRec); 
if (data.IndexOf("") > -1) { 
break; 


// Zeige die Daten auf der Konsole an. 
Console.WriteLine( "Text empfangen : {0}", data); 
// Senden Sie die Daten an den Client zurück. 
byte[] msg = Encoding.ASCII.GetBytes(data); 
handler.Send(msg); 
handler.Shutdown(SocketShutdown.Both); 
handler.Close(); 

} catch (Exception e) { 
Console.WriteLine(e.ToString()); 

Console.WriteLine("nPress ENTER to continue..."); 
Console.Read(); 

public static int Main(String[] args) { 
StartListening(); 
return 0; 


 以上就是c#(Socket)同步套接字代码示例的内容,更多相关内容请关注注PHP中文网(www.php.cn)!



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn