gpt4 book ai didi

java - 多线程服务器不接受客户端输出流

转载 作者:太空宇宙 更新时间:2023-11-04 08:00:04 24 4
gpt4 key购买 nike

我对线程世界有点陌生,我正在制作一个游戏服务器,分配连接到另一个线程的每个客户端,以便我可以在同一端口上接受多个客户端。但是,我遇到了客户端连接到服务器但无法发送数据(以 ObjectOutputStream 的格式到服务器)的问题。有什么可能出问题的指示吗?

这是我的 MatchmakingServer.java 代码

    try {
listenForPlayers = new ServerSocket(portNumber);
System.out.println("Port opened. Searching for players");
while (true){
Socket clientSocket = listenForPlayers.accept();
Runnable r = new PlayerHandlerForServer(clientSocket);
new Thread(r).start();
}
} catch (Exception e) { }

我的 PlayerHandler 对象实现了 Runnable,这是它的 run 方法。

private Player player;
private ObjectInputStream getPlayerData;
private static PrintWriter sendPlayerData;
private Socket socket;
public void run() {
try {
getPlayerData = new ObjectInputStream(socket.getInputStream());
player = (Player) getPlayerData.readObject();
//do stuff with the player object, this code get executed.
sendPlayerData = new PrintWriter(socket.getOutputStream(),true);
updatePlayersFound(sendPlayerData);
} catch (Exception e) { }

}

最佳答案

正如评论日志中指出的异常,它们将提供可能导致此问题的线索。

一个疯狂的猜测是您的 Player 类没有实现 Serialized 接口(interface)。

关于java - 多线程服务器不接受客户端输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12984762/

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