Java 当打开套接字时,我的程序似乎什么也不做
所以我有一个程序,它应该在两个人之间开始聊天,但是当我第一次尝试启动服务器时,我似乎没有看到我的第一个打印语句,我似乎也从来没有启动过我的聊天参与者类。问题似乎与socket=Server.accepts()的初始化有关,就好像我在打印语句输出之前放入了打印语句一样。如何修复此问题?函数Java 当打开套接字时,我的程序似乎什么也不做,java,Java,所以我有一个程序,它应该在两个人之间开始聊天,但是当我第一次尝试启动服务器时,我似乎没有看到我的第一个打印语句,我似乎也从来没有启动过我的聊天参与者类。问题似乎与socket=Server.accepts()的初始化有关,就好像我在打印语句输出之前放入了打印语句一样。如何修复此问题?函数server.accept()会阻止您的代码,直到客户端连接到您的服务器。我打赌这不会发生在你的实际测试设置 函数server.accept()会阻止您的代码,直到客户端连接到您的服务器。我打赌这不会发生在你的
server.accept()
会阻止您的代码,直到客户端连接到您的服务器。我打赌这不会发生在你的实际测试设置
函数
server.accept()
会阻止您的代码,直到客户端连接到您的服务器。我打赌这不会发生在你的实际测试设置
Socket.accept()
仅在某些东西实际连接到服务器后才会返回。因此,如果您只启动服务器而不启动客户机,那么不打印任何内容实际上就是预期的行为。Socket.accept()
仅在某个内容实际连接到您的服务器后才会返回。因此,如果只启动服务器而不启动客户机,那么不打印任何内容实际上就是预期的行为。
public static void main(String args[]) {
boolean isServer=true;
int port=4000;
try{
if(isServer==true){
new Server(port);
//starta server
}
if(isServer==false){
new Client(port);
}}
catch(IOException e){
System.out.println("could not start chat");
}
}
}
class Server{
ServerSocket server;
Socket socket;
Server(int port) throws IOException{
server = new ServerSocket(port);
socket = server.accept();
System.out.println("got here");
new ChatParticipant(socket);
server.close();
}}