Loading... **C#中简单Socket编程** ### 引言 Socket编程是网络编程的基础,通过Socket编程,可以实现计算机之间的通信。本文将介绍如何在C#中进行简单的Socket编程,包括服务器端和客户端的实现。示例将展示TCP连接的基本操作,适用于理解网络通信的基本概念和实现方法。 ![](https://www.8kiz.cn/usr/uploads/2024/07/1028152848.png) ### 准备工作 确保您的开发环境中安装了.NET SDK,可以通过Visual Studio或其他C#开发工具进行编码和调试。 ### 创建Socket服务器 服务器需要监听特定端口,接受客户端连接,并进行数据收发。以下是一个简单的C# Socket服务器示例: #### 服务器代码 ```csharp using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; class Program { static void Main(string[] args) { // 设置服务器IP和端口 IPAddress ipAddress = IPAddress.Parse("127.0.0.1"); int port = 11000; // 创建一个TcpListener对象 TcpListener listener = new TcpListener(ipAddress, port); // 开始监听客户端请求 listener.Start(); Console.WriteLine("服务器已启动,等待客户端连接..."); while (true) { // 接受客户端连接 TcpClient client = listener.AcceptTcpClient(); Console.WriteLine("客户端已连接!"); // 启动一个新线程处理客户端请求 Thread clientThread = new Thread(HandleClient); clientThread.Start(client); } } static void HandleClient(object obj) { TcpClient client = (TcpClient)obj; // 获取网络流 NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024]; int bytesRead; // 读取客户端发送的数据 while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) != 0) { string data = Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine("收到客户端消息: " + data); // 回应客户端消息 byte[] response = Encoding.UTF8.GetBytes("服务器已收到消息"); stream.Write(response, 0, response.Length); } // 关闭连接 client.Close(); } } ``` ### 创建Socket客户端 客户端需要连接服务器并发送数据。以下是一个简单的C# Socket客户端示例: #### 客户端代码 ```csharp using System; using System.Net.Sockets; using System.Text; class Program { static void Main(string[] args) { // 设置服务器IP和端口 string server = "127.0.0.1"; int port = 11000; // 创建一个TcpClient对象 TcpClient client = new TcpClient(server, port); // 获取网络流 NetworkStream stream = client.GetStream(); // 发送消息到服务器 string message = "Hello, Server!"; byte[] data = Encoding.UTF8.GetBytes(message); stream.Write(data, 0, data.Length); Console.WriteLine("发送消息到服务器: " + message); // 接收服务器回应消息 byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string response = Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine("收到服务器回应: " + response); // 关闭连接 client.Close(); } } ``` ### 运行示例 1. 先运行服务器代码。服务器将开始监听指定的IP和端口,等待客户端连接。 2. 然后运行客户端代码。客户端将连接到服务器并发送消息。 3. 服务器接收到消息后,将回应客户端,并在控制台上显示接收到的消息。 4. 客户端接收到服务器的回应消息,并在控制台上显示。 ### 思维导图 ```mindmap - C# Socket编程 - 创建Socket服务器 - 初始化监听 - 接受客户端连接 - 处理客户端请求 - 创建Socket客户端 - 连接服务器 - 发送数据 - 接收回应 - 运行示例 - 运行服务器 - 运行客户端 - 通信测试 ``` ### 总结 通过本文的介绍和示例代码,您应该了解了如何在C#中进行基本的Socket编程,包括服务器和客户端的实现。Socket编程是网络编程的基础,通过学习和掌握这些基本概念和操作,可以为更复杂的网络应用开发打下坚实的基础。希望本文对您有所帮助。 最后修改:2024 年 07 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏