我對套接字很陌生,希望有人能幫助我。我有一些工作,但它不是很快發送信息,所以我已經重構,現在無法回到任何有效的工作。這個問題似乎是,只有發佈的第一條消息被讀取,然後接收器坐在client = listener.accept();
即使我很確定發件人仍在發送消息Socket問題 - 只讀第一條消息
任何人都可以看到我可能會做錯在這裏,請嗎?
由於
public class Sender {
Socket server = null;
DataInputStream inp = null;
PrintStream outp = null;
public Sender(){
server = new Socket("127.0.0.1" , 3456);
outp = new PrintStream(server.getOutputStream());
}
private void connectAndSendToServer(String message) {
outp = new PrintStream(server.getOutputStream());
outp.print(message + "\n");
outp.flush();
}
}
Receiver類
public class Receive{
public String receiveMessage(int port) {
String message= null;
ServerSocket listener = null;
Socket client = null;
try{
listener = new ServerSocket(port);
client = listener.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
return br.readLine();
}
...
finally{
try {
if(client!=null && listener!=null){
client.close();
listener.close();
}
}
catch (IOException e) {
}
}
return message;
}
}
事實上,您實例化PrintStream兩次可能是問題的一部分。 – Flawyte