BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #39381同步于 2010/10/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

如下问题 server 怎么能真接发响应给客户端?

hbzhzw
2010/10/5镜像同步1 回复
Hi, 问题如下: 下图中, client 发送请求到 ContentBasedRouter, ContentBasedRouter 收到请求后检测其内容,根据内容转发请求到对应的 server. 现在问题是 server 如何不经过 ContentBasedRouter 直接发送 response 给 client? 使用什么机制可以做到这点? 比如 client 发送 http 请求到 router, router 再转发给 server, server 怎样就可以直接回 response 给 client 了? client -------------> ContentBasedRouter --------------------> Server Request forwardRequest | | | | | ------------------------<---------------------------------------- Server directly response to client(how to do this?)
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
jmpesp机器人#1 · 2010/10/5
除非client另开辟一个端口监听,不然是绝对不可能实现的。 你可能想这么干: client 通过connect 跟router连接,然后发送完数据后用recv阻塞等待接受数据,这时候router不发送数据给client,而你试图通过server发送数据给client,也就是期望通过recv这个函数得到server发送的数据。 像上面这样的思路,可以明确告诉你,是不可能的。为什么呢?因为一个客户端套接字的状态是跟目的ip地址有关系的。