私はソケットプログラミングには新しいし、番号を送信するクライアントを作成し、サーバーはクライアントから送信された番号の倍数を返します。私はまずサーバーを実行してからクライアントを実行します。私は値を入力していますが、サーバーからの応答は得られません。以下は私のクライアントとサーバーのコードです。サーバークライアントJAVAソケットプログラミングエラー
Serverコード
try
{
ServerSocket ss=new ServerSocket(4000);
while(true)
{
Socket sock=ss.accept();
InputStreamReader isr=new InputStreamReader(sock.getInputStream());
BufferedReader br=new BufferedReader(isr);
String num=br.readLine();
try
{
int n=Integer.parseInt(num);
n=n*2;
String ret=String.valueOf(n);
PrintWriter writer=new PrintWriter(sock.getOutputStream());
writer.println(ret);
writer.close();
}
catch(IOException ex)
{
System.out.println("Enter a number!");
}
}
}
catch(Exception ex)
{
System.out.println("Error");
}
クライアントコード
try
{
Socket s=new Socket("127.0.0.1",4000);
String st;
PrintWriter pw=new PrintWriter(s.getOutputStream());
InputStreamReader isr=new InputStreamReader(s.getInputStream());
BufferedReader br=new BufferedReader(isr);
InputStreamReader is=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(is);
st=in.readLine();
pw.println(st);
st=br.readLine();
System.out.println("the server says: "+ st);
}
catch(IOException ex)
{
ex.printStackTrace();
}
私は、サーバーから任意の出力を取得しておりませんように実行する手順何を示唆してください。
すべてのエラー? – kosa
ソケットに書き込む前に 'br.readLine()'を使ってサーバから読み込みます。 'in.readLine()'を使って標準入力から入力を取得し、 'pw.println()'を使ってこれをサーバソケットに書き込み、 'br.readLine()'を使ってサーバから読み込みます。 – Priyesh
@ Priyeshありがとうございますが、サーバーは依然としてそれに応じて応答していません。これは、クライアントが入力した番号として出力を表示しています。例えば、私が「2」と入力している場合、サーバはまた「2」に応答している。 –