1
リモートサーバーに接続して応答を受け取るコードを記述しようとしています。 リモートアドレスはwww.euref-ip.net:2101リモートサーバーからの応答を受信できません
です。ウェブページから接続しようとするとうまくいきます。しかし、私は私のJavaコードを介して接続しようとしているときに私は何も応答を取得することはできません。ここ は、これまでの私のコードです:
public class Client implements Runnable{
private String nServer = "";
private int nPort = 0;
public Client(String server, int port){
this.nServer = server;
this.nPort = port;
}
@Override
public void run() {
try {
SocketAddress sockaddr = new InetSocketAddress(nServer, nPort);
Socket s = new Socket();
s.connect(sockaddr, 10 * 1000);
if (s.isConnected()) {
s.setSoTimeout(20 * 1000);
DataOutputStream out = new DataOutputStream (s.getOutputStream());
DataInputStream in = new DataInputStream (s.getInputStream());
while (true) {
// send a message to the server
String requestmsg = "GET/HTTP/1.0\r\n";
requestmsg += "User-Agent: Client v1\r\n";
requestmsg += "Accept: */* \r\n";
requestmsg += "Connection: keep alive\r\n";
out.write(requestmsg.getBytes());
out.flush();
// receive a response
int ln = in.available();
byte [] bytes = new byte [ln];
in.read(bytes);
System.out.println(new String(bytes) + "\n");
Thread.sleep(2000);
}
}
}
catch (UnknownHostException ex) {System.out.println(ex);}
catch (IOException ex) {System.out.println(ex);}
catch (InterruptedException ex) {System.out.println(ex);}
}}
今ln
変数は常に0であると私は空の応答を読んでいます。 何が間違っていますか?助言がありますか? ご協力いただければ幸いです。
OKは、私がしようとするあなたに感謝します。しかし、あなたが追加した最初の行は、同じWebブラウザからJavaコードから実行しているサーバーに接続しようとしているときに要求に表示されません。そのようにして、要求を印刷できます。 –
それは働いた。重要なのは最後に余分な空白行があるようだ。ありがとうございました。 –