1、在服务器断开一个端口来监听客户端的请求,可以绑定某个协议,也可以不绑定
2、在客户端实现一个基于该端口的连结,实现一个输入输出流来传递消息
3、在服务器端接受来自客户端的请求
4、所谓阻塞不阻塞,可以理解为客户端是否要等待服务器端的回复,就像一个单线程我有一个现成的例子,但是(server&client)都是用java实现的,有兴趣的话和我联系

解决方案 »

  1.   

    1、在服务器断开一个端口来监听客户端的请求,可以绑定某个协议,也可以不绑定
    2、在客户端实现一个基于该端口的连结,实现一个输入输出流来传递消息
    3、在服务器端接受来自客户端的请求
    4、所谓阻塞不阻塞,可以理解为客户端是否要等待服务器端的回复,就像一个单线程我有一个现成的例子,但是(server&client)都是用java实现的,有兴趣的话和我联系
      

  2.   

    也可以通过数据库来做。
    server端不断检测数据库,如果client有请求则insert一条记录。
      

  3.   

    关键是如何从客户端java程序传送过来的数据流中分解出相应的数据。我的c语言daemon需要接收类似struct结构的数据流!!java程序可以这样传递吗?
      

  4.   

    Java对于二进制的数据处理和C里面是不太相同的,也就是说Java的int不等同于C的int。直接接收和发送struct是不可行的你可以用字符串作为传送媒体。也可以自己定义各种数据类型的传送格式(二进制级别上)
      

  5.   

    多谢楼上几位的回答,我还有问题:有没有必要把daemon作成并发服务器呢?还是重复服务器比较好?(服务器端掉用的服务比较慢)各位做过并发式的,请指教指教设计时应该注意什么地方??
      

  6.   

    可以考虑用CORBA,完成,不用实现低层的数据结构封装,服务器段可以考虑用C++,服务器调用的速度比较慢,应该是用并发的好一些。不过也不一定,可以考虑用线程池等等。
      

  7.   

    njallenwang(令狐冲冲):关于消息队列处理,你能否给个实例并将讲解一下。在socket中,究竟如何处理来自多个客户端的请求?谢谢了!!!!