Home  >  Article  >  Backend Development  >  c# (Socket) synchronous socket code example

c# (Socket) synchronous socket code example

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

Synchronous Client Socket Example

The following example program creates a client that connects to the server. The client is spawned with a synchronous socket, so execution of the client application is suspended until the server returns a response. The application sends a string to the server and then displays the string returned by the server on the console.

C#
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class SynchronousSocketClient {
public static void StartClient() {
// Data buffer for incoming data.
byte[] bytes = new byte[1024];
// Connect to a remote device.
try {
// Establish the remote endpoint for the socket.
// This example uses port 11000 on the local computer.
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName())
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress,11000);
// Create a TCP/IP socket.
Socket sender = new Socket (AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp );
// Connect the socket to the remote endpoint. Catch any errors.
try {
sender.Connect(remoteEP);
Console.WriteLine("Socket connected to {0}",
sender.RemoteEndPoint.ToString());
// Encode the data string into a byte array.
byte[] msg = Encoding.ASCII.GetBytes("This is a test");
// Send the data through the socket.
int bytesSent = sender.Send(msg);
// Receive the response from the remote device.
int bytesRec = sender.Receive(bytes);
Console.WriteLine("Echoed test = {0}",
Encoding.ASCII.GetString(bytes,0,bytesRec));
// Release the socket.
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("Unexpected exception : {0}", e.ToString());
}
} catch (Exception e) {
Console.WriteLine( e.ToString( ); The requested server. The server is spawned with a synchronous socket,
so hangs the execution of the server application while waiting for a connection from the client. The application receives a string from the client, displays the string on the console, and then echoes the string back to the client. The string coming from the client must contain the string "" to signal the end of the message.








C#
Copy code

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class SynchronousSocketListener {
//Incoming data from the client.
public static string data = null;
public static void StartListening() {
// Data buffer for incoming data.
byte[] bytes = new Byte[1024];
// Establish the local endpoint for the socket.
// Dns.GetHostName returns the name of the
// host running the application.
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000); 
// Create a TCP/IP socket. 
Socket listener = new Socket(AddressFamily.InterNetwork, 
SocketType.Stream, ProtocolType.Tcp ); 
// Bind the socket to the local endpoint and  
// listen for incoming connections. 
try { 
listener.Bind(localEndPoint); 
listener.Listen(10); 
// Start listening for connections. 
while (true) { 
Console.WriteLine("Waiting for a connection..."); 
// Program is suspended while waiting for an incoming connection. 
Socket handler = listener.Accept(); 
data = null; 
// An incoming connection needs to be processed. 
while (true) { 
bytes = new byte[1024]; 
int bytesRec = handler.Receive(bytes); 
data += Encoding.ASCII.GetString(bytes,0,bytesRec); 
if (data.IndexOf("") > -1) { 
break; 


// Show the data on the console. 
Console.WriteLine( "Text received : {0}", data); 
// Echo the data back to the client. 
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)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn