我有一个小问题。我想使用服务器套接字将播放器列表发送到客户端。但是由于某种原因,当我尝试运行该应用程序时,它将在到达时停止socket = serverSocket.accept();
。我在Google上尝试过伺服服务,但没有用。
package Serverside;
import java.io.*;
import java.net.*;
import com.mygdx.game.Sprites.Hero;
import com.mygdx.game.Sprites.Player;
import java.util.ArrayList;
/**
*
* @author Tjidde Nieuwenhuizen
*/
public class ServerArenaOfLegends {
static ServerSocket serverSocket;
static Socket socket;
static ObjectOutputStream outStreamObj;
static ObjectInputStream inStreamObj;
static ArrayList<Player> playerList;
public static void main(String[] args) {
ServerArenaOfLegends sr = new ServerArenaOfLegends();
sr.run();
}
private void run() {
playerList = new ArrayList<Player>();
Player p1;
Hero hero = new Hero(2, null, 3);
p1 = new Player(null, null, hero);
playerList.add(p1);
try {
serverSocket = new ServerSocket(5555);
socket = serverSocket.accept();
outStreamObj = new ObjectOutputStream(socket.getOutputStream());
while (true) {
outStreamObj.writeObject(playerList);
}
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
}
如果运行此示例:
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(5555);
Socket socket = serverSocket.accept();
System.out.println("DONE");
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
该程序将挂起。
然后在命令行上运行“ telnet 127.0.0.1 5555”,程序将打印“ DONE”,然后结束。
因此,.accept()会阻塞直到它获取数据,这就是您所看到的行为。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句