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

与服务器端类似

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();
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值