.net网络编程(4)TcpListener、TcpClient
2011-03-04 10:51
531 查看
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 data Byte[] 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 writing NetworkStream 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 connection client.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"); } }
相关文章推荐
- .Net网络编程——使用TcpClient与TcpListener建立客户端与服务端连接
- .Net网络编程——使用TcpClient与TcpListener建立客户端与服务端连接
- 二、C#网络编程2(TcpListener,TcpClient)
- C# - 网络编程 之 TcpClient与TcpListener
- C#网络编程-TcpClient、TcpListener、UdpClient
- C#网络编程-TcpClient、TcpListener、UdpClient
- 一、C#网络编程(TcpListener,TcpClient)
- 网络编程资料总结(一)----TcpListener和TcpClient的基本用法
- Socket编程3-TcpListener,TcpClient-UdpClient
- C#网络编程之TcpListener与TcpClient类常用方法与属性(7)
- C#网络编程.套接字.TcpListener.TcpClient
- [C#基础]网络编程(二):TcpListener & TcpClient
- winform网络编程之TcpClient类,TcpListener类和UdpClient类
- java网络编程之TCP
- Java网络编程Demo(一)多线程的TCP网络程序
- 高性能网络编程4----TCP连接的关闭
- java 网络编程【8】 在TCP网络连接上传递对象
- 26-网络编程-11-网络编程(TCP协议-服务端)
- 关于tcpjava网络编程服务器端收不到信息
- Java网络编程之TCP协议下—上传文件到服务器程序