一、服务器的搭建
新建一个C#控制台应用,用于搭建服务器。
// 设置接收字节的容器,容量大小为1024个字节,客户端发来的字节都存在这里static byte[] buffer = new byte[1024];static void Main(string[] args){ // 建立Tcp服务器socket,名为server,用于监听客户端连接 Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 配置端口。“127.0.0.1”是本机IP地址,也可在命令提示符(黑窗口)输入ipconfig,查看ipv4地址 // 7777是端口号、可在1025~65535随便选。 EndPoint endpoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7777); // 绑定端口 server.Bind(endpoint); // server开始监听客户端连接。10,是指服务器能够同时允许10个客户端连接,可写其他 server.Listen(10); Console.WriteLine("服务器开启成功,开始监听~"); // 当有客户端接入时,新建名为serverManager的Socket,用于接收客户端的消息。 // 前面的server是接收客户端消息用,而这里的serverManager是接收客户端消息用,各司其职。 Socket serverManager = server.Accept(); // 返回收到的字节的实际长度 int length = serverManager.Receive(buffer); // 用Encoding.UTF8.Getstring(),将收到的实际长度的字节转化为string类型 string mes = Encoding.UTF8.GetString(buffer, 0, length); Console.WriteLine("收到了" + length + "个字节,内容为:" + mes); Console.ReadKey();}
注:serverManager除了接收消息,也可以发送消息。基本除了监听,其他活它都干。
二、客户端的搭建
再建一个C#控制台应用,用于搭建客户端。
static void Main(string[] args){ // 建立Tcp客户端socket,名为client,用于监听客户端连接,和建立服务器的Socket一样的配方 Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 配置端口,“127.0.0.1”、7777,均和服务器保持一致 EndPoint endpoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7777); // 接入端口 client.Connect(endpoint); string content = "这里是客户端"; // 用Encoding.UTF8.GetBytes(),将要发送的内容转化为字节 byte[] data = Encoding.UTF8.GetBytes(content); // 发送字节 client.Send(data);}
搭建好之后,先运行服务器端,
再运行客户端。
一个简单的服务器和客户端就搭建完成。