connection issue I am testing initial connection to Gnucleus 1.8.4.0 with my limewire Client.
I'v notice I must send "GNUTELLA/0.6 200 OK" very quick, right after the 200 ok response. other wise I can't set up the connection to Gnucleus.
First I was wondering it is timer issue, after I check the source code(CGnuNode::OnReceive) and change the timeout value, it is the same.
CAsyncSocket::OnReceive didn't get invoked at all. Can anybody help me on it?
private void connectToServer() {
try {
socket = new Socket(InetAddress.getLocalHost(), SERVER_PORT);
row_in = socket.getInputStream();
in = new BufferedReader(new InputStreamReader (socket.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
} catch(IOException e) {
System.out.println("CLIENT: Cannot connect to server");
System.exit(-1);
}
try {
sendString("GNUTELLA CONNECT/0.6");
sendString("User-Agent: limewire");
sendString("X-Ultrapeer: False");
sendString("X-Query-Routing: 0.1");
sendString("Uptime: 1D 00H 00M");
sendString("Remote-IP: 192.168.0.4:7000\r\n");
String response = in.readLine();
System.out.println("read = " + response);
//if I send response here, it works
//sendString("GNUTELLA/0.6 200 OK\r\n");
while( response != null ){
response = in.readLine();
System.out.println("read = " + response);
}
//if i put it here, it doesn't work
sendString("GNUTELLA/0.6 200 OK\r\n");
....
...
private void sendString(String s) throws IOException {
out.println(s);
out.flush();
} |