//server using System; using System.Net; using System.Net.Sockets; using System.Text; namespace ConsoleApp63 { internal class Program { static void Main(string[] args) { int port = 11000; TcpServer server = new TcpServer(port); Console.WriteLine("Press Enter to exit!"); Console.ReadLine(); server.server.Stop(); Console.WriteLine("Hello, World!"); } } public class TcpServer { public TcpListener server; private const int BufferSize = 1024; public TcpServer(int port) { server = new TcpListener(IPAddress.Any, port); server.Start(); Console.WriteLine($"Server started on port {port}"); AcceptClients(); } private void AcceptClients() { while (true) { TcpClient client = server.AcceptTcpClient(); Console.WriteLine("Connected to client!"); NetworkStream stream = client.GetStream(); byte[] buffer = new byte[BufferSize]; int bytesRead; try { while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0) { string dataReceived = Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine($"Received from client:{dataReceived}"); byte[] msg = Encoding.UTF8.GetBytes($"Server:{dataReceived}"); stream.Write(msg, 0, msg.Length); Console.WriteLine($"Sent to client:Server:{dataReceived}"); } } catch (Exception ex) { Console.WriteLine($"Error handling client:{ex.Message}"); } finally { stream.Close(); client.Close(); Console.WriteLine("Client disconnected!"); } } } private void HandleClientComm(object? state) { TcpClient client = (TcpClient)state; if (client == null) { return; } NetworkStream stream = client.GetStream(); byte[] buffer = new byte[BufferSize]; int bytesRead; try { while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0) { string dataReceived = Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine($"Received from client:{dataReceived}"); byte[] msg = Encoding.UTF8.GetBytes($"Server:{dataReceived}"); stream.Write(msg, 0, msg.Length); Console.WriteLine($"Sent to client:Server:{dataReceived}"); } } catch (Exception ex) { Console.WriteLine($"Error handling client:{ex.Message}"); } finally { stream.Close(); client.Close(); Console.WriteLine("Client disconnected!"); } } } }
//client using System.Net.Sockets; using System; using System.Text; using System.IO; namespace ConsoleApp64 { internal class Program { static void Main(string[] args) { TcpClient client = null; NetworkStream stream; try { client = new TcpClient("127.0.0.1", 11000); while (true) { stream = client.GetStream(); string msg = $"Client {Guid.NewGuid().ToString()}"; byte[] data = Encoding.UTF8.GetBytes(msg); stream.Write(data, 0, data.Length); Console.WriteLine($"Sent:{msg}"); data = new byte[256]; int bytes = stream.Read(data, 0, data.Length); string responseData = Encoding.ASCII.GetString(data, 0, bytes); //stream.Close(); Thread.Sleep(1000); } } catch (ArgumentNullException ex) { Console.WriteLine($"ArgumentNullException:{ex}"); } catch (SocketException ex) { Console.WriteLine($"SocketException:{ex}"); } finally { client?.Close(); } Console.WriteLine("Hello, World!"); Console.Read(); } } }
标签:TcpClient,Console,stream,C#,bind,client,WriteLine,msg,using From: https://www.cnblogs.com/Fred1987/p/18393416