- 最后登录
- 2019-12-25
- 注册时间
- 2012-8-24
- 阅读权限
- 90
- 积分
- 71088
- 纳金币
- 52336
- 精华
- 343
|
服务器端代码:- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Net;
- using System.Net.Sockets;
- namespace Csharp_socket编程_TCP协议
- {
- class Program
- {
- static void Main(string[] args)
- {
- //socket也是一个类,位于System.Net.Sockets下面
- //1:创建一个socket
- Socket tcpserver = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- //2:绑定Ip地址和端口号117.25.188.1
- IPAddress ipaddress = new IPAddress(new byte[]{117,25,190,168});
- EndPoint point = new IPEndPoint(ipaddress,7788);//IPEndPoint类是对ip端口做了一层封装的类
- tcpServer.Bind(point);//向操作系统申请一个可用的ip地址和端口号用于通信
- //3:开始监听(等待客户端的连接)
- Console.WriteLine("开始监听");/////////
- tcpServer.Listen(100);//设置最大的连接数
- Socket ClientSocket = tcpServer.Accept();//暂停当前线程知道有客户端连接进来才进行下面的代码,返回客户端的socket
- Console.WriteLine("有客户端连入");///////
- //4:使用返回的socket向客户端发送消息
- string welcome = "welcome to you";
- Console.WriteLine("向客户端发送消息" + welcome);///////
- byte[] str = Encoding.UTF8.GetBytes(welcome);//利用这个方法将string型转化为byte型数组
- ClientSocket.Send(str);//向客户端发送欢迎信息
- //5:接收客户端发来的消息
- byte[] data = new byte[1000];
- int length = ClientSocket.Receive(data);
- string receiveMessage = Encoding.UTF8.GetString(data, 0, length);
- Console.WriteLine("收到客户端发来的消息:"+receiveMessage);
- Console.ReadKey();
- }
- }
- }
复制代码 客户端代码:- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Net;
- using System.Net.Sockets;
- namespace Csharp_socket编程_TCP协议_客户端
- {
- class Program
- {
- static void Main(string[] args)
- {
- //1:创建socket
- Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
-
- //2:向服务器端发送连接请求
- Console.WriteLine("向服务器端发送连接请求");//////
- IPAddress ipaddress = IPAddress.Parse("117.25.190.168");//IPAddress.Parse可以把string类型的ip地址转化为ipAddress型
- EndPoint point = new IPEndPoint(ipaddress, 7788);//通过ip地址和端口号定位要连接的服务器端
- tcpClient.Connect(point);//建立连接
- Console.WriteLine("连接到服务器");//////
- //3:接收服务器端发来的消息
- byte[] data = new byte[1000];
- int length = tcpClient.Receive(data);//这里的byte数组用来接收数据,返回值length表示接收的数据长度
- string message = Encoding.UTF8.GetString(data, 0, length);//把字节数组转化为字符串
- Console.WriteLine("接收到服务器端的消息:" + message);
- //4:向服务器端发送消息
- string messageToServer = Console.ReadLine();
- Console.WriteLine("向服务器端发送消息:" + messageToServer);//////
- tcpClient.Send(Encoding.UTF8.GetBytes(messageToServer));//向服务器端发送消息
- Console.ReadKey();
- }
- }
- }
复制代码 |
|