请教一个问题,希望大家帮助解答,谢谢了.问题描述:
使用java.nio.*包socket通信,现在需求是这样的: 客户端发送N次请求(q1,q2,q3...qn),服务器很忙或遇到网络等问题,服务器现在只响应了N-m(总是小于请求次数)次请求,那么怎么将N- m次请求响应的数据与N次请求对应起来? 对应的响应到对应的请求处理方法中处理? 还有一种情况,服务器不按请求顺序处理,客户端怎么处理服务器的响应?理想模型:
q1 ------------ a1
q2 ------------ a2
q3 ------------ a3
................................
选择响应:
q1 ------------ a1
q2 ------------ 不响应
q3 ------------ a2
................................
网络等问题:
选择响应:
q1 ------------ a1未到达
q2 ------------ a2到达,
q3 ------------ a3到达,a1到达
................................怎么将每次的请求与响应对应起来?
(在请求与响应中都加入识别码是个解决方法,若不这样处理会不会有问题? 我socket通信不是很清楚.)
你要可靠就用TCP,要性能就用UDP。
总之Selector只是通知你端口什么时候可用,至于你操作的是TCP还是UDP看你自己的需要
另外选择一个好的框架,加上好的设计,nio本身不应该很忙,除非是网络问题。