1 服务器 发送消息和接受消息的代码
namespace Socket_编程_tcp协议_服务端
{ class Program { static void Main(string[] args) { //1.创建服务端socket类 Socket tcpServer = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); //2.绑定IP和端口号 192.168.155.1 IPAddress ipaddress = new IPAddress(new byte[]{192,168,155,1}); EndPoint point = new IPEndPoint(ipaddress,7788); //ipendpoint是对ip+端口号做了一次封装的类 tcpServer.Bind(point); //这是向操作系统申请一个可用的ip跟端口号 用来做通信 //3.开始监听等待客户端做连接 tcpServer.Listen(100); //参数是最大连接数 Console.WriteLine("开始监听"); Socket clientSocket = tcpServer.Accept(); //暂停当前线程,直到有一个客户端连接过来,之后进行下面的代码 //使用返回的socket跟客户端做通信 Console.WriteLine("客户端连接过来了");string message = "hello欢迎连接";
byte[] data = Encoding.UTF8.GetBytes(message);//对字符串做二进制的编码得到一个字符串的字节数组 clientSocket.Send(data); Console.WriteLine("向客户端发送了一条数据"); //接受消息 byte[] data2 = new byte[1024]; //创建一个字节数组容器来接受客户端发送过来的消息 int length = clientSocket.Receive(data2); string message2 = Encoding.UTF8.GetString(data2, 0, length); Console.WriteLine("接受到了一条消息"+message2); Console.ReadKey(); } }}
2:客户端向服务端发送消息和接受消息代码
namespace Socket编程_tcp协议_客户端
{ class Program { static void Main(string[] args) { //1.创建socket Socket tcpClient = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); //2.发起建立连接的请求 IPAddress ipAddress = new IPAddress(new byte[] {192, 168, 155, 1 }); //用来存储ip地址 EndPoint point = new IPEndPoint(ipAddress,7788); //用来指用来指定IP地址和端口数据 tcpClient.Connect(point); //与主机建立连接 通过ip和端口号 // byte[] data = new byte[1024]; //定义一个byte类型的数组int length = tcpClient.Receive(data); //接受数据 byte类型的数组,这个data是用来接受数据的
// length 表示接受了多少字节的数据 string message = Encoding.UTF8.GetString(data,0,length); Console.WriteLine(message);//1、服务器端发送消息
string message2 = Console.ReadLine(); //读取用户的输入 把输入发送到服务器端 byte[] date = Encoding.UTF8.GetBytes(message2); //把字符串转化成字符数组 tcpClient.Send(date); Console.ReadKey(); } }}