C# Socket基础(三)之客户端连接服务器和接收消息

又与大家见面,看不懂的随时问。

 

 1        private Thread threadClient;//客户端线程

 2        private Socket socketClient;//客户端套接字

 3         /// <summary>

 4         /// 创建套接字连接到服务端

 5         /// </summary>

 6         private void CreateSocketConnection()

 7         {

 8             try

 9             {

10                 //创建一个客户端的套接字 参数(IP4寻址协议,流连接方式,TCP数据传输协议)

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

12                 //获取IP

13                 IPAddress address = IPAddress.Parse(txtIP.Text.Trim());

14                 //创建一个包含IP和端口号的网络节点对象

15                 IPEndPoint ipPoint = new IPEndPoint(address, Convert.ToInt32(txtPort.Text.Trim()));

16                 // 连接服务端

17                 socketClient.Connect(ipPoint);

18                 //创建一个线程,接受服务端发来的数据

19                 threadClient = new Thread(ReceiveService);

20                 //设置线程为后台线程

21                 threadClient.IsBackground = true;

22                 //启动线程连接服务端

23                 threadClient.Start();

24                //显示消息

25                 ShowMsg("与服务器" + txtIP.Text.Trim() + ":" + txtPort.Text + "成功建立连接!");

26 

27             }

28             catch (Exception)

29             {

30              

31                ShowMsg(txtIP.Text.Trim() + ":" + txtPort.Text + "服务器未启动!");

32                  

33             }

34 

35         }

 

 客户端接收消息

    private void ReceiveService()

    {

            while (true)

            {

                try

                {

                    int num = -1;

                   var b = new byte[1024 * 1024 * 4];

                    int length = socketClient.Receive(b);

                    var msg = System.Text.Encoding.UTF8.GetString(b,0,length);

                    ShowMsg(socketClient.RemoteEndPoint.ToString() + "对您: " + msg);



                }

                catch (Exception ex)

                {

                    ShowMsg(ex.Message);

                    break;



                }

            }

       }

 

1    private void ShowMsg(string msg)

2    {

3      txtConneMsg.AppendText("\r\n" + DateTime.Now + "\r\n\r\n" + msg + "\r\n");

4    }

 

客户端:

C# Socket基础(三)之客户端连接服务器和接收消息

 

服务器:

C# Socket基础(三)之客户端连接服务器和接收消息

 

客户端接收到消息:

C# Socket基础(三)之客户端连接服务器和接收消息

待续。下一篇:C# Socket基础(四)之客户端向服务器发消息

 

作者:gaobing
 
 
提示:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

你可能感兴趣的:(socket)