1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > .net网络编程(4)TcpListener TcpClient

.net网络编程(4)TcpListener TcpClient

时间:2022-06-01 10:19:25

相关推荐

.net网络编程(4)TcpListener TcpClient

MSDN例子

服务器端

用TcpListener监听,接受TcpClient,以NetworkStream传输数据

public static void Main(){TcpListener server = null;try{// Set the TcpListener on port 13000.Int32 port = 13000;IPAddress localAddr = IPAddress.Parse("127.0.0.1");// TcpListener server = new TcpListener(port);server = new TcpListener(localAddr, port);// Start listening for client requests.server.Start();// Buffer for reading dataByte[] bytes = new Byte[256];String data = null;// Enter the listening loop.while (true){Console.Write("Waiting for a connection... ");// Perform a blocking call to accept requests.// You could also user server.AcceptSocket() here.TcpClient client = server.AcceptTcpClient();Console.WriteLine("Connected!");data = null;// Get a stream object for reading and writingNetworkStream stream = client.GetStream();int i;// Loop to receive all the data sent by the client.while ((i = stream.Read(bytes, 0, bytes.Length)) != 0){// Translate data bytes to a ASCII string.data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);Console.WriteLine("Received: {0}", data);// Process the data sent by the client.data = data.ToUpper();byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);// Send back a response.stream.Write(msg, 0, msg.Length);Console.WriteLine("Sent: {0}", data);}// Shutdown and end connectionclient.Close();}}catch (SocketException e){Console.WriteLine("SocketException: {0}", e);}finally{// Stop listening for new clients.server.Stop();}Console.WriteLine("\nHit enter to continue...");Console.Read();}

客户端

static class Class1{static void Connect(String server, String message){try{// Create a TcpClient.// Note, for this client to work you need to have a TcpServer // connected to the same address as specified by the server, port// combination.Int32 port = 13000;TcpClient client = new TcpClient(server, port);// Translate the passed message into ASCII and store it as a Byte array.Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);// Get a client stream for reading and writing.// Stream stream = client.GetStream();NetworkStream stream = client.GetStream();// Send the message to the connected TcpServer. stream.Write(data, 0, data.Length);Console.WriteLine("Sent: {0}", message);// Receive the TcpServer.response.// Buffer to store the response bytes.data = new Byte[256];// String to store the response ASCII representation.String responseData = String.Empty;// Read the first batch of the TcpServer response bytes.Int32 bytes = stream.Read(data, 0, data.Length);responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);Console.WriteLine("Received: {0}", responseData);// Close everything.stream.Close();client.Close();}catch (ArgumentNullException e){Console.WriteLine("ArgumentNullException: {0}", e);}catch (SocketException e){Console.WriteLine("SocketException: {0}", e);}Console.WriteLine("\n Press Enter to continue...");Console.Read();}public static void Main(){Connect("127.0.0.1", "hello");}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。