gpt4 book ai didi

java - 客户端 while 循环从服务器发送和接收

转载 作者:行者123 更新时间:2023-12-01 23:38:12 24 4
gpt4 key购买 nike

这是我连接到服务器的客户端应用程序。我使用一个名为 DataPackage 的对象来来回发送信息。该代码在其自己的线程中运行。

变量in是一个ObjectInputStreamout是一个ObjectOutputStream

DataPackage dp = null;
while (true) {

try {
dp = (DataPackage) in.readObject();
if (dp != null) {
// Do stuff with received object
}

if (sendSomething) { // Send stuff
out.writeObject( new DataPackage("some data") );
out.flush();
out.reset();
}
} catch (ClassNotFoundException | IOException e1) {
e1.printStackTrace();
}

try {
t.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}

我的代码的问题是我永远不会到达发送内容的部分,除非我从服务器收到一些内容。该循环会等待来自服务器的某些内容,然后继续执行 if (sendSomething)。我应该如何构建我的代码,以便我可以随时发送内容并随时接收内容?希望您能理解。

最佳答案

您可以使用线程。如果它们使用相同的套接字与外部服务器通信,这种情况很常见,因为它们在等待从套接字读取数据时不会阻塞。

主题1:

读取时阻塞收到消息时 - 做某事

线程2:做事发生某事 - 写入套接字

关于java - 客户端 while 循环从服务器发送和接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18333723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com