私はソケットに非常に慣れていないので、誰かが私を助けてくれることを望んでいました. 何かが機能していましたが、情報を非常に迅速に送信していなかったので、リファクタリングしましたが、機能するものに戻ることができません。client = listener.accept();
問題は、発行された最初のメッセージのみが読み取られ、送信者がまだメッセージを送信していると確信しているにもかかわらず、受信者が座っていることです。
ここで私が間違っているかもしれないことを誰でも見ることができますか?
ありがとう
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();
}
}
受信者クラス
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;
}
}