繁体   English   中英

java nio客户端服务器向客户端返回错误值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM