Ich versuche, einen Code zu schreiben, mit dem ich eine Verbindung zu einem Remote-Server herstellen und eine Antwort von ihm erhalten kann. Die entfernte Adresse lautet: www.euref-ip.net:2101Kann keine Antwort von einem Remote-Server erhalten
Wenn Sie versuchen, von einer Webseite zu verbinden, funktioniert es gut. Jedoch, wenn ich versuche, durch meinen Java-Code zu verbinden, kann ich keine Antwort zurückbekommen. Hier ist mein Code so weit:
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);}
}}
Im Augenblick ist die ln
Variable ist immer 0 und ich leere Antwort lese. Was mache ich falsch? Irgendwelche Vorschläge? Jede Hilfe wäre willkommen.
OK, danke ich versuchen. Die erste Zeile, die Sie hinzugefügt haben, erscheint jedoch nicht in der Anfrage, wenn ich versuche, vom selben Webbrowser aus eine Verbindung zu einem Server herzustellen, der von einem Java-Code aus ausgeführt wird. Auf diese Weise kann ich die Anfrage ausdrucken. –
Es hat funktioniert. Es scheint, dass das kritische Ding die extra leere Linie am Ende ist. Vielen Dank. –