[英]java nio client server return wrong value to client
我已经使用java nio创建了一个客户端-服务器应用程序,该程序运行正常,但是我的问题是,当服务器上有许多客户端连接到服务器时,它响应请求客户端以外的错误客户端,例如,如果客户端A请求一个人的信息服务器将第一个人的信息返回给客户端B而不是客户端A。我尝试同步对象,但仍然无法正常工作,可能是问题所在。 这是我的服务器示例代码
ByteArrayInputStream ins = new ByteArrayInputStream(bb.array());
ObjectInputStream ois = new ObjectInputStream(ins);
List l;
synchronized (ois) {
l = (List) ois.readObject();
}
ois.close();
bb.clear();
Thread t = new Thread(new TransmitData(l, this.sc, ss));
t.start();
bb.array()
返回整个数组。 你应该用
bb.array(), bb.position(), bb.limit()
作为构造函数参数,或者
bb.array(), 0, bb.position()
如果您已将其翻转。
注意:您不需要在方法本地对象上同步。 没有人能看到它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.