C#学习教程之Socket的简单使用
什么是Socket?
Socket(套接字)是支持TCP/IP协议的网络通信方式,它是一种用于网络通信的编程接口或应用程序编程接口(API),使得两个进程之间可以通过网络进行数据交互。在 C# 中,可以使用 System.Net.Sockets 命名空间中的类来实现 Socket 的编程。
如何实现 Socket 编程?
在 C# 中,我们可以借助 System.Net.Sockets 命名空间中的 Socket 类,来实现 Socket 编程。
下面是两条示例说明:
示例一:TCP 服务端
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Server
{
static void Main(string[] args)
{
// 创建一个 TCP/IP Socket 对象
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 获取本地 IP 地址和端口号
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888);
// 绑定 Socket 对象到本地地址
listener.Bind(localEndPoint);
// 开始监听
listener.Listen(10);
Console.WriteLine("等待客户端连接...");
// 等待客户端连接
Socket clientSocket = listener.Accept();
Console.WriteLine("已经和客户端建立连接");
byte[] buffer = new byte[1024];
int bytesReceived = 0;
// 接收客户端发送的数据
do
{
bytesReceived = clientSocket.Receive(buffer);
string data = Encoding.ASCII.GetString(buffer, 0, bytesReceived);
Console.WriteLine($"接收到客户端发送的数据:{data}");
} while (bytesReceived > 0);
// 关闭 TCP 连接
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
}
}
示例二:TCP 客户端
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Client
{
static void Main(string[] args)
{
// 创建一个 TCP/IP Socket 对象
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 获取服务器 IP 地址和端口号
IPEndPoint remoteEp = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888);
// 连接到服务器
clientSocket.Connect(remoteEp);
Console.WriteLine("已经和服务器建立连接");
// 向服务器发送数据
string message = "Hello, server!";
byte[] buffer = Encoding.ASCII.GetBytes(message);
clientSocket.Send(buffer);
// 关闭 TCP 连接
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
}
}
总结
本篇文章介绍了 C# 中 Socket 的简单使用,包括创建 Socket 对象、绑定到本地地址、开始监听、接收数据、发送数据等操作。希望可以帮助初学者了解 Socket 的使用方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#学习教程之Socket的简单使用 - Python技术站