基于Socket/Tcp的通信

  1. 同步方式
    服务端:
            //位于using System.Net.Sockets;
            //参数含义:InterNetwork = IPV4 Stream = 流传输 Tcp = TCP协议
            Socket serverSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
            IPAddress iPAddress = IPAddress.Parse("127.0.0.1");   //设立IP
            IPEndPoint iPEndPoint = new IPEndPoint(iPAddress,88);//设立端口号
            serverSocket.Bind(iPEndPoint);//绑定ip和端口号
            serverSocket.Listen(0);//参数表示可以接受的多少客户端  0代表无数
            Socket clientSocket = serverSocket.Accept();//接受客户端信息

            //向客户端发送数据
            string msg = "Hello World!!!我是第一条消息";
            byte[] data = Encoding.UTF8.GetBytes(msg);//SocketType.Stream需要字节通信
            clientSocket.Send(data);//发送数据

            //接受客户端的数据
            byte[] dataBuffer = new byte[1024];
            int count = clientSocket.Receive(dataBuffer);//接收也需要字节接收
            string msgReceive = Encoding.UTF8.GetString(dataBuffer,0,count);转换
            Console.WriteLine(msgReceive);

            Console.ReadKey();
            clientSocket.Close();
            serverSocket.Close();

客户端:

	
            Socket clientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
            clientSocket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"),88));//链接服务器

            byte[] data = new byte[1024];
            clientSocket.Receive(data);
            string msg = Encoding.UTF8.GetString(data,0,data.Length);
            Console.WriteLine("服务端接受的数据:"+msg);
            
            string msgSend = Console.ReadLine();
            byte[] dataBuffer = Encoding.UTF8.GetBytes(msgSend);
            clientSocket.Send(dataBuffer);

            Console.ReadKey();
            clientSocket.Close();

注意:

  • AddressFamily中InterNetwork代表IPV4 InterNetworkV6 代表IPV6

  • SocketType中Stream代表流传输 Dgram代表报文传输

  • ProtocolType.Tcp表示选择的是TCP协议

  • 使用到了

  • using System.Net.Sockets; //Socket

  • using System.Net; //IPAddress IPEndPoint

  • using System.Text; //Encoding.UTF8.GetBytes();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是小狼君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值