1. 程式人生 > >socket程式設計簡單Demo講解及原始碼分享(C# Winform 內網)

socket程式設計簡單Demo講解及原始碼分享(C# Winform 內網)

百科對於定義講的很詳細,就不再敘述了。 然後接下來主要是講解如何在winform上面實現簡單的socket通訊。

首先是伺服器和客戶端兩邊的設定了。

對於伺服器,主要做的是以下幾件事:

1.建立套接字(socket)

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

裡面引數的含義 ---我等以後有時間了再講

2.設定對應的ip和埠號

       IPAddress ip = IPAddress.Parse(txt_IP.Text);
       IPEndPoint endpoint = new IPEndPoint(ip, Convert.ToInt32(txt_Port.Text));

3.繫結IPEndPoint及設定監聽的數量--

  socketWatch.Bind(endpoint);
 socketWatch.Listen(20);

4.建立執行緒用來監聽--

       Thread th = new Thread(Listen);
            th.IsBackground = true;
            th.Start(socketWatch);    //Start裡面的引數 是執行緒方法的引數

5.設定監聽函式=

        void Listen(Object o)
        {
            Socket socketWatch = o as Socket;
            while (true)
            {
                try
                {
                    //建立一個新的用於與客戶端進行通訊的socket物件
                    socketSend = socketWatch.Accept();
                    ipAddress = socketSend.RemoteEndPoint.ToString();   //獲得客戶端的ip地址和埠號  ipAddress格式例如:127.0.0.1:50000
                    dicSocket.Add(socketSend.RemoteEndPoint.ToString(), socketSend);
                    ShowMsg(ipAddress + ":" + "連線成功");
                    //建立一個新的執行緒,用來接收客戶端傳送過來的訊息
                    Thread th = new Thread(Recive);
                    th.IsBackground = true;
                    th.Start(socketSend);
                }
                catch
                {

                }
            }
        }

後面有點累了。。等有時間再更新 有點略懶。。。

做完的效果:

原始碼連結如下,大家可自行下載:

連結:https://pan.baidu.com/s/1mVCWEGuw9Yq0FnGpsp6NUg  提取碼:ymlg