我想写一个类似“监听程序”的程序用于server等待client的连接请求,并作出相应的反应
本帖最后由 liklstar 于 2014-05-06 22:59 编辑我想写一个类似“监听程序”的程序用于server等待client的连接请求,并作出相应的反应。比如:server有一个常态化的connectionWait()程序运行(是否必须是一个进程?),等待client的connectionRequest()请求。当connectionRequest()请求到来时,connectionWait()作些相应的检查、匹配工作,而后决定是接受还是拒绝。
有必要说明的是:我的这个connectionWait()并不像Oracle的Listener那样监听TCP的一个端口,而是绕过TCP/IP协议栈直接等待来自以太网链路层的connectionRequest,然后做出响应!另外,connectionWait()是可以提供给用户空间进程使用的系统调用。
这个connectionWait()该怎么写? 有谁知道或了解这个啊?指点指点我啊?哪怕是一点点的建议也好啊?! 本帖最后由 liklstar 于 2014-05-10 12:27 编辑
完整地说是这样:
Server发出“连接等待”(ConnectionWait)请求等待Client的“连接请求”(ConnectionRequest)。如果在规定的时间内没有ConnectionRequest请求到来,则发生超时并返回(Timeout),然后再发出ConnectionWait请求等待。如果这时有Client发出ConnectionRequest请求,Server则需要创建一些数据结构并作些验证、匹配的工作,之后“接受”或“拒绝”该连接。也就是说经过一次“握手”后,Server和Client双方进入“连接建立”或“拒绝连接,继续等待”状态。
需要注意的是:这些工作都不是建立在TCP/IP的基础上的,是绕过TCP/IP直接在网络上进行的。这些ConnectionRequest是由Client端的用户进程发出的命令,也可以说是系统调用。
这个大家有办法解决吗?有谁知道该怎么写这个程序? 请问大家:如果是在TCP/IP上监听某个端口,是如何实现的呢?是不是只要在一个循环内调用系统调用-“监听端口”就可以了?
页:
[1]