zoukankan      html  css  js  c++  java
  • 【.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/

  • 相关阅读:
    MPlayer 开始支持RTSP/RTP流媒体文件
    Linux(CentOS 6.4)系统中安装mplayer
    IP实时传输协议RTP/RTCP详解
    --without-v4l ,make clean, 重新make即可。
    关于IP数据包首部校验字段的理解
    转[总结]FFMPEG视音频编解码零基础学习方法 .
    指针为什么分类型
    IOS-ARC和垃圾回收机制
    IOS-frame和bounds有什么不同
    iOS-消息推送机制的实现
  • 原文地址:https://www.cnblogs.com/yefanqiu/p/2112270.html
Copyright © 2011-2022 走看看