西西河

主题:怎样向局域网内的pda们发送消息 -- huky

共:💬19 🌺9 新:
分页树展主题 · 全看 下页
  • 家园 怎样向局域网内的pda们发送消息

    这个是这学期的project之一。作业是这样的:模拟一个餐馆,餐馆的服务员用pda给客人点菜,然后发送到数据库。厨房的大厨,看着一个屏幕上显示的菜单做菜,做好之后用他的油指一点触摸屏上的ok按钮,要能发送一个信息给pda(我想不用指定那个pda,所有的pda都收)说,狮子头做好了,来拿。

    我在的小组就是做厨房这块的。问题是怎么才能发送呢?我们用的是visual studio2005。我想的是搞个广播。但是具体技术方面无从入手,有知道的大侠还望指点一二。(google了一阵,也没有找到有用的)

    • 家园 用socket做

      用wifi把pda跟大师傅的电脑组成局域网。厨师机发ready消息给服务器,服务器群发消息(socket连接后的随便什么msg)给pda,pda收到消息就显示。

      如果是用java,非常容易,开一个多线程的服务器,厨师机发 菜名.ready 到服务器,服务器维护一个数据集合,菜.对象.列表

      pda定时查询服务器,如果有新的 某菜.ready && 某菜.lock = false 而且这个菜是他点的, 就把它锁定, set 菜.lock = true,然后去取菜。取完菜,厨师机发消息,删除 菜.对象。

      java环境下: 不算图形界面,估计500行代码足够了。算上很好很强大的界面,2k 3k也差不多了。

      VS studio肯定也支持socket,就是CS模型,通过IP和端口号连接,两边各有一个消息循环,然后互相就可以发字符串了。

      我原先也想到用消息队列之类的东西的,但是作为“project 之一”完全没必要。

      如果不考虑今后复用,把数据结构和文字协议设计好就可以了。

      • 家园 花谢

        小弟之前没有接触过这类东西。老兄可否推荐几个链接,我好好学习一下。看上去还是可以实现这么个功能的,兴奋一下

        • 花谢
          家园 我的java是从老师的课件上面学的,网上有链接

          但是是法语的。。。

          就是最粗浅的socket的知识,windows下估计一两个API就搞定了, 类似:

          public soc as socket

          set soc = ConnectSocket(ipAddrServer, protNumber, Option1, Option2)大概这样的语法(改: 参数列表大概是这样的,不是语法)

          然后用soc.readln 和soc.println 就可以实现向对方读信息和写信息。

          服务器端消息循环就是

          // get soc as socket

          //貌似这里还应该有一个listenPort 之类用于监听某个端口的API

          while(true){

          stringMSG = soc.readln // 检查是否有新消息,有就上锁(自己设计对象属性),取用,没有就等下一次循环

          sleep(x seconds)

          }

          主机端再加上多线程,能处理n个并发的socket连接,集中管理消息和记录,就OK了。

          java doc 里面应该有。可以看看用java做http服务器的例子,同样是一个服务器开多线程接受n个并发线程访问的。

          或者msdn, socket对象,跟它相关的win32 API里面肯定有

    • 家园 多说两句吧

      才发现标题里就提到了“局域网”,那么不用说,一定是wifi了。

      b/s模式的好处是,开发员不必对通信协议操心;风险是,要有好的用户体验就要用ajax,要使用ajax就有浏览器平台是否支持的风险,在PDA上这个风险尤其大。在比较新的第三方的JSF框架下,实现一个ajax的轮询出奇的简单,只需添加一个<a4j:poll>标签即可。当然你们用微软的东西就另说了。

      具体到一对多的广播,这个应该采用消息队列服务——微软应该有对应的产品的。

      • 家园 再花

        现在手机开发很热。可是我学的program没有这方面课程,这学期才有一个相关的课程,但是老师有很水,教什么,就先声明那个不是他的长项。这两年,他已经教了俺们3,4们课啦,惨。都得靠自己。

      • 家园 9494,PDA上面跑java还是比WinMobile开发省心

        pda上面调试WinMobile程序。。。 惨就一个字,

        java在开发PC上面就可以调了,反正不用考虑平台。

    • 家园 类似局域网聊天

      其实找个局域网聊天的程序参考下就好了。

      socket编程的问题而已啊。

      开源的这种局域网聊天程序很好找吧。

      广播的实现http://www.moon-soft.com/doc/7845.htm

      聊天程序的例子http://www.moon-soft.com/doc/44453.htm

      • 家园 花谢

        俺根本没有头绪。之前放狗找来找去,只看到什么网络唤醒之类。。老兄给的链接一定好好学习先。

    • 家园 wifi+b/s模式

      传输这块就可以省不少心

      • 家园 献花

        确实省心。不过这块算是服务生那个小组讨论的。俺们的老师很懒,这个project人多,组多,分得零散。想学点东西,只好自己想些想法去实现一下。

      • 家园 嗯,好似北京现在一些pda点菜的饭店就是用wifi
分页树展主题 · 全看 下页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河