Java套接字,从服务器输出获取输入时客户端挂起
我在客户机中有一个套接字,它连接到服务器以发送和接收字符串,使用writeUTF()和readUTF()读取和写入套接字,当我将一个字符串从客户机写入套接字并在服务器上读取它们时,它就工作了。但当服务器从套接字接收字符串并将“标志”写入套接字以在客户端上读取它们时,客户端挂起在读取行。这是我的密码 服务器Java套接字,从服务器输出获取输入时客户端挂起,java,sockets,Java,Sockets,我在客户机中有一个套接字,它连接到服务器以发送和接收字符串,使用writeUTF()和readUTF()读取和写入套接字,当我将一个字符串从客户机写入套接字并在服务器上读取它们时,它就工作了。但当服务器从套接字接收字符串并将“标志”写入套接字以在客户端上读取它们时,客户端挂起在读取行。这是我的密码 服务器 public void run(){ DataInputStream input = null; try{ output = new DataOutputStr
public void run(){
DataInputStream input = null;
try{
output = new DataOutputStream(socket.getOutputStream());
input = new DataInputStream(socket.getInputStream());
while((true)&&(this.active)){
String receive = input.readUTF();
String[] str = receive.split("@");
if (str[0].equals("get_list")){
output.writeUTF("flag");
}
}
}catch(IOException ex){
}
客户
public void run(){
DataOutputStream output = null;
try{
output = new DataOutputStream(socket.getOutputStream());
DataInputStream input = new DataInputStream(socket.getInputStream());
output.writeUTF("get_list@");
String receive = input.readUTF(); //Hang at this line
System.out.println(receive);
} catch (IOException ex) {
}
在这之前可能需要
output.flush()
。在每次output.flush()
之后立即将output.flush()
添加到服务器和客户端。writeUTF()或任何其他写入输出(如果有的话)。您的意思是在output.writeUTF(“标志”)?。我尝试但不同时使用你的客户端和服务器。似乎存在不平衡的读/写问题。客户端等待信息,但服务器不打算发送此信息。常见问题解答,如何启动Netbeans IDE的多个实例:我的意思是在output.writeUTF(“get_list”)之后启动这两个实例代码>和之后输出。writeUTF(“标志”)
。