小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 7401|回复: 8

下位机给上位机发送信息

[复制链接]
发表于 2012-9-12 13:31:44 | 显示全部楼层 |阅读模式
我想通过下位机给上位机发送一些信息,要怎么编写上位机的接收程序?
回复

使用道具 举报

发表于 2012-9-12 21:34:05 | 显示全部楼层
用一个线程不停循环从输入流里面读取数据,就是接收了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-13 14:39:19 | 显示全部楼层
本帖最后由 大头BB 于 2012-9-13 15:09 编辑
liuviking 发表于 2012-9-12 21:34
用一个线程不停循环从输入流里面读取数据,就是接收了。

需要重新创建一个连接吗?   
static Socket clientSocket;
回复 支持 反对

使用道具 举报

发表于 2012-9-13 20:30:39 | 显示全部楼层
大头BB 发表于 2012-9-13 14:39
需要重新创建一个连接吗?   
static Socket clientSocket;

不需要,socket就建立一个,连接起来了之后就是双向的。
回复 支持 反对

使用道具 举报

发表于 2012-9-14 19:08:13 | 显示全部楼层
如何在PC里运行上位机软件? 未命名3.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-15 00:43:57 | 显示全部楼层
wu_k30 发表于 2012-9-14 19:08
如何在PC里运行上位机软件?

汗。。那个WifiRobot就是了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-18 21:21:59 | 显示全部楼层
liuviking 发表于 2012-9-13 20:30
不需要,socket就建立一个,连接起来了之后就是双向的。

    ///////////////////////////////////////////////////////接收数据///////////////////////////////
        private static byte[] AlarmData=new byte[1024];
      

        void ReceiveData()
        {

            int recv;
            string stringData;
            while (true)
            {
                recv = clientSocket.Receive(AlarmData);
                stringData = Encoding.ASCII.GetString(AlarmData, 0, recv);
                if (stringData !=null)
                {
                    mp3.play();
                }
            }
           
        }


        void AcceptConn(IAsyncResult iar)
        {
            Socket oldserver = (Socket)iar.AsyncState;
            clientSocket = oldserver.EndAccept(iar);
            Thread receiver = new Thread(new ThreadStart(ReceiveData));
            receiver.Start();
        }


   void menuItem5_Click(object sender, EventArgs e)
        {
           
            InitWIFI(ControlIp, Port);//初始化WIFI
            clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.1.1"),2001);
            clientSocket.Bind(iep);
            clientSocket.Listen(5);
            clientSocket.BeginAccept(new AsyncCallback(AcceptConn), clientSocket);

        }

我想问下,这个怎么还是无法接收到数据呢?下位机发送的是“0x11”的字符串
回复 支持 反对

使用道具 举报

发表于 2012-9-18 21:32:22 | 显示全部楼层
大头BB 发表于 2012-9-18 21:21
///////////////////////////////////////////////////////接收数据/////////////////////////////// ...

你这个到底是同步还是异步啊?怎么两种都有?
回复 支持 反对

使用道具 举报

发表于 2015-4-22 15:18:18 | 显示全部楼层
liuviking 发表于 2012-9-12 21:34
用一个线程不停循环从输入流里面读取数据,就是接收了。

老大,我建了也一直循环接收,为什么过一段时间就接收不到正确数据?该怎么处理啊?附上我的代码
http://www.wifi-robots.com/thread-7785-1-1.html,帮我看看啊,老大,非常感谢!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-5-9 06:08 , Processed in 1.117421 second(s), 22 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表