天天看點

【.Net MF網絡開發闆研究-05】Socket程式設計之用戶端

介紹完了《Socket程式設計之服務端》之後,我們這篇文章介紹一下Socket用戶端程式設計。

官方示例中也包括了SocketClient,不過其完成的功能一是DNS解析,二是網站資料接收。我們需要大幅度改進一下,讓SocketClient程式和PC上的Socket Server進行通信。

連接配接伺服器函數代碼如下:

    private static Socket ConnectSocket(String ip, Int32 port)

    {

            try

            {

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

                socket.Connect(new IPEndPoint(IPAddress.Parse(ip), port));

                return socket;

            }

            catch

            {

                return null;

            }

}           

主函數代碼調用connectSocket函數,如果連接配接成功,則發送“hello .net micro framework!!!”,發送完之後,然後接收伺服器發的資料,并把它直接發送回去,相關代碼如下。

    while (true)

    {

        serverSocket = ConnectSocket("192.168.1.128", 8080);

        if (serverSocket != null)

        {

            string s="hello .net micro framework!!!";

            byte[] bytDatas = System.Text.UTF8Encoding.UTF8.GetBytes(s);

            serverSocket.Send(bytDatas);

            while (true)

            {

                try

                {

                    Byte[] buffer = new Byte[1024];

                    if (serverSocket.Poll(5 * c_microsecondsPerSecond, SelectMode.SelectRead))

                    {

                        if (serverSocket.Available == 0) return;

                        Int32 bytesRead = serverSocket.Receive(buffer, serverSocket.Available, SocketFlags.None);

 

                        byte[] bytData = new byte[bytesRead];

                        Array.Copy(buffer, bytData, bytData.Length);

                        string ss = new string(System.Text.UTF8Encoding.UTF8.GetChars(bytData));

                        Debug.Print(ss);

                        serverSocket.Send(bytData);

                    }

                }

                catch (SocketException se)

                {

                    Debug.Print(se.ToString());

                    break;

                }

            }

        }

        Thread.Sleep(1000);

    }           

把代碼部署到開發闆并運作,然後我們打開已經編寫好的TCP Server程式(我編寫的一個TCP/UDP測試工具,下載下傳位址如下:

http://www.sky-walker.com.cn/MFRelease/Tools/YFTCPServer.rar

。)

運作後的程式界面如下:

【.Net MF網絡開發闆研究-05】Socket程式設計之用戶端

可以發現,用戶端已經連接配接到伺服器了,并且發送了“hello .net micro framework!!!”,我們發送資料“.net micro framework”,發現伺服器也已經傳回所發送的資料了。

我們打開序列槽調試程式,也會發現開發闆程式,把接收的程式通過debug口發送出來了,如下圖所示:

【.Net MF網絡開發闆研究-05】Socket程式設計之用戶端

基本的網絡程式設計我們都介紹完了,使用者可以根據自己的實際需要,很友善的編寫網絡通信程式了。

 ------------------------------------------------------------------

本文源碼:

http://www.sky-walker.com.cn/MFRelease/Sample/YFMFSocketClient.rar

MF簡介:

http://blog.csdn.net/yefanqiu/article/details/5711770

官方網站:

http://www.sky-walker.com.cn/

繼續閱讀