通过TCP的Socket连接的简易C#客户端流程要点

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asdfghj253/article/details/85011963

与服务器端类似

1.建立套接字

 Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

2.连接服务器的IP地址、端口

clientSocket.Connect(new IPEndPoint(IPAddress.Parse("192.168.1.126"), 6650));

3.接收服务器端消息

由于客户端基本只对应一台服务器,所以不需要写异步,直接Receive()函数就行

            //接收服务器端消息
            byte[] data = new byte[1024];
            int count = clientSocket.Receive(data);//会暂停,只有先接收到,才会继续执行下面的(包括发送)
            string msg = Encoding.UTF8.GetString(data, 0, count);
            Console.Write(msg);

4.发送数据

            //向服务器端发送消息
            string s = Console.ReadLine();
            clientSocket.Send(Encoding.UTF8.GetBytes(s));//不会暂停

如果要持续发送数据,则加上while(true){}

            //持续发送数据
            while (true)
            { 
                //向服务器端发送消息
                string s = Console.ReadLine();
                clientSocket.Send(Encoding.UTF8.GetBytes(s));//不会暂停
            }

完整代码:

using System.Net;
using System.Net.Sockets;

static void Main(string[] args)
{
   StartClientAsyn();
}
static void StartClientSync() {
   Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

   clientSocket.Connect(new IPEndPoint(IPAddress.Parse("192.168.1.126"), 6650));

   //接收服务器端消息
   byte[] data = new byte[1024];
   int count = clientSocket.Receive(data);//会暂停,只有先接收到,才会继续执行下面的(包括发送)
   string msg = Encoding.UTF8.GetString(data, 0, count);
   Console.Write(msg);

   //向服务器端发送消息
   string s = Console.ReadLine();
   clientSocket.Send(Encoding.UTF8.GetBytes(s));//不会暂停

   clientSocket.Close();
}

猜你喜欢

转载自blog.csdn.net/asdfghj253/article/details/85011963