我正在创建一个消息传递应用程序,它将连接本地网络上的两个或多个用户并开始发送消息。它不需要互联网连接。 现在我不知道在哪里制作套接字以及serverSocket在哪里? 谁是客户,谁将成为服务器? 当时我写的代码是这样的 ....
static ServerSocket server;
static Socket client;
public static void main(String[] args) throws IOException {
try{
server=new ServerSocket(65474);
}
catch(IOException e){
System.out.println("Port not Free");
}
while(server.isClose()==false){
client=server.accept();
}
BufferedReader rdr=new BufferedReader(new InputStreamReader(client.getInputStream()));
从这里开始,我将从客户端获得输入。 这段代码是否正确?客户端会正确连接到服务器吗?
答案 0 :(得分:2)
你无限接受客户,但你永远无法阅读他们的数据。
你应该这样说:
while(!server.isClosed() {
client=server.accept();
BufferedReader rdr=new BufferedReader(new InputStreamReader(client.getInputStream()));
}
你可以删除== false并且只是否定你得到的布尔值。 如果返回false,则设置为true;如果返回true,则设置为false。
不要忘记阅读数据并在屏幕上显示如下:
String receivedText = rdr.readLine();
System.out.println(receivedText);