c语言编程笔录

首页 >   > 笔记大全

笔记大全

C# Socket实现简单控制台案例

更新时间:2023-08-29

前言

在这个问题中,我们要使用C# Socket实现一个简单的控制台案例。Socket是一种网络通信的工具,它可以帮助我们在不同的计算机之间进行数据传输。

代码实现

首先,我们需要引入System.Net.Sockets命名空间,这个命名空间提供了Socket类,用于创建和操作Socket对象。

using System;
using System.Net;
using System.Net.Sockets;

class Program
{
    static void Main()
    {
        // 创建一个Socket对象
        Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        
        // 绑定IP地址和端口号到Socket对象
        IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
        IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 8080);
        socket.Bind(ipEndPoint);
        
        // 监听连接请求
        socket.Listen(10);
        
        Console.WriteLine("等待客户端连接...");
        
        // 接受客户端连接
        Socket clientSocket = socket.Accept();
        Console.WriteLine("客户端已连接!");
        
        // 接收和发送数据
        byte[] buffer = new byte[1024];
        int size = clientSocket.Receive(buffer);
        string data = Encoding.ASCII.GetString(buffer, 0, size);
        Console.WriteLine($"接收到数据:{data}");
        
        string response = "这是服务器的响应";
        byte[] responseData = Encoding.ASCII.GetBytes(response);
        clientSocket.Send(responseData);
        
        // 关闭连接
        clientSocket.Shutdown(SocketShutdown.Both);
        clientSocket.Close();
        socket.Close();
    }
}

上面的代码演示了如何创建一个Socket对象,并在本地绑定IP地址和端口号。然后,我们通过调用Listen方法开始监听连接请求。

当有客户端连接时,我们使用Accept方法接受连接,并可以通过接收和发送数据的方法进行数据传输。

代码解释

首先,我们通过创建一个Socket对象来实现网络通信。Socket类的构造函数需要三个参数:AddressFamily、SocketType和ProtocolType。AddressFamily用于指定地址族(例如,IPv4或IPv6),SocketType用于指定套接字的类型(例如,TCP或UDP),ProtocolType用于指定使用的网络协议。

接下来,我们通过调用Bind方法将IP地址和端口号绑定到Socket对象。IPAddress类用于表示一个IP地址,IPEndPoint类用于表示一个IP地址和端口号的组合。

之后,我们调用Listen方法开始监听连接请求。该方法的参数指定了允许的最大连接数。

当有客户端连接时,我们使用Accept方法接受连接,并将返回一个新的Socket对象,表示与客户端的连接。然后,我们可以使用新的Socket对象进行数据传输。在这个例子中,我们使用Receive方法接收客户端发送的数据,并使用Send方法发送服务器的响应数据。

最后,我们通过调用Close方法关闭连接和Socket对象。

总结

通过使用C# Socket类,我们可以轻松地实现网络通信功能。在这个案例中,我们演示了如何创建、绑定和监听Socket对象,并在客户端连接后进行数据传输。

希望这个简单的控制台案例能够帮助你理解和使用C# Socket实现网络通信。