当前位置: 技术问答>java相关
客户端为java,服务器端为c编写的daemon,如何操作啊?
来源: 互联网 发布时间:2015-07-02
本文导语: 我的问题是: 客户端的java程序通过socket将消息送到服务器端的daemon, daemon采用阻塞模式。 daemon执行完服务后发回消息给客户端。 (1)如何建立联系? (2)如何在java端发送,接受消息? (3)如何在daemon端发送...
我的问题是:
客户端的java程序通过socket将消息送到服务器端的daemon,
daemon采用阻塞模式。
daemon执行完服务后发回消息给客户端。
(1)如何建立联系?
(2)如何在java端发送,接受消息?
(3)如何在daemon端发送,接受消息?
(4)阻塞模式和非阻塞模式的主要区别在哪儿?
请各位不吝赐教,回答任何一个问题都有分。
客户端的java程序通过socket将消息送到服务器端的daemon,
daemon采用阻塞模式。
daemon执行完服务后发回消息给客户端。
(1)如何建立联系?
(2)如何在java端发送,接受消息?
(3)如何在daemon端发送,接受消息?
(4)阻塞模式和非阻塞模式的主要区别在哪儿?
请各位不吝赐教,回答任何一个问题都有分。
|
1、在服务器断开一个端口来监听客户端的请求,可以绑定某个协议,也可以不绑定
2、在客户端实现一个基于该端口的连结,实现一个输入输出流来传递消息
3、在服务器端接受来自客户端的请求
4、所谓阻塞不阻塞,可以理解为客户端是否要等待服务器端的回复,就像一个单线程
我有一个现成的例子,但是(server&client)都是用java实现的,有兴趣的话和我联系
2、在客户端实现一个基于该端口的连结,实现一个输入输出流来传递消息
3、在服务器端接受来自客户端的请求
4、所谓阻塞不阻塞,可以理解为客户端是否要等待服务器端的回复,就像一个单线程
我有一个现成的例子,但是(server&client)都是用java实现的,有兴趣的话和我联系
|
Java对于二进制的数据处理和C里面是不太相同的,也就是说Java的int不等同于C的int。
直接接收和发送struct是不可行的
你可以用字符串作为传送媒体。
也可以自己定义各种数据类型的传送格式(二进制级别上)
直接接收和发送struct是不可行的
你可以用字符串作为传送媒体。
也可以自己定义各种数据类型的传送格式(二进制级别上)
|
要看你程序的数据负荷
如果同时访问的连接不超过100个,就可以用多进程模型做
如果访问量很大,就要考虑线程池和多进程同时采用
如果单次访问时间非常短,也可以用进程池加上轮转服务
主要注意的问题是“同步”,对于一切可能同时读写的资源都要设置互斥访问。不然服务器一定会死机,而且你还不知道为什么。
如果同时访问的连接不超过100个,就可以用多进程模型做
如果访问量很大,就要考虑线程池和多进程同时采用
如果单次访问时间非常短,也可以用进程池加上轮转服务
主要注意的问题是“同步”,对于一切可能同时读写的资源都要设置互斥访问。不然服务器一定会死机,而且你还不知道为什么。
|
这是我在这个公司试用期间完成的模块,主要应该考虑以下三个方面的问题:
1.建链控制
2.消息队列处理
3.java和C语言之间数据类型的差异及struct和class之间的转换
qq:47767020
1.建链控制
2.消息队列处理
3.java和C语言之间数据类型的差异及struct和class之间的转换
qq:47767020
|
可以考虑用CORBA,完成,不用实现低层的数据结构封装,服务器段可以考虑用C++,服务器调用的速度比较慢,应该是用并发的好一些。不过也不一定,可以考虑用线程池等等。
|
也可以通过数据库来做。
server端不断检测数据库,如果client有请求则insert一条记录。
server端不断检测数据库,如果client有请求则insert一条记录。