随笔-130  评论-680  文章-0  trackbacks-4

【.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

运行后的程序界面如下:

可以发现,客户端已经连接到服务器了,并且发送了“hello .net micro framework!!!”,我们发送数据“.net micro framework”,发现服务器也已经返回所发送的数据了。

我们打开串口调试程序,也会发现开发板程序,把接收的程序通过debug口发送出来了,如下图所示:

      

        基本的网络编程我们都介绍完了,用户可以根据自己的实际需要,很方便的编写网络通信程序了。

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

本文源码: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/

posted on 2011-07-21 00:27 叶帆 阅读(1354) 评论(1) 编辑 收藏

评论:
#1楼 2011-07-21 08:25 | 南京.王清培      
学习了;楼主上传的那个智能小车视频不错;呵呵 顶一个
 回复 引用 查看   


    MF讨论组:进入

    新浪微博:进入

    点击这里加入QQ群

     【叶帆公告】
      微软(中国) .Net MF开发团队成员(yefanqiu@hotmail.com)。本博客原创文章,作者保留一切权利,需经作者同意后方可转载,转载时请注明[叶帆工作室]及相关文章链接。
      CSDN博客:进入

      MF官方网站:进入

      MF团队博客:进入

      工控自动化一览:进入

 

昵称:叶帆
园龄:6年3个月
粉丝:126
关注:5

随笔档案(130)

叶帆快速通道

叶帆友情链接

积分与排名

  • 积分 - 181297
  • 排名 - 474

最新评论

阅读排行榜

推荐排行榜