Re: Socket problem: read & write to same socket
It works! Thanks! It busted me for quite a while.
On Tuesday, March 13, 2012 11:14:36 AM UTC-5, Arne Vajh=F8j wrote:
On 3/13/2012 12:01 PM, liyaohua.bupt@gmail.com wrote:
I want to establish connection to a server(written by myself in Go lang=
uage), read from socket, and then write into socket.
The connection can be established, and it reads correctly. But after th=
at and when I want to write to socket, it closes the connection. I used wir=
eshark to listen to the packets. I saw my program sent a FIN to the server =
side. So the server receives nothing.
Note that the server side only sends one line into socket.
I later wrote a server in Java and a client in Go. They work fine in bo=
th read and write.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class DeserializerTester {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Socket s = null;
BufferedReader in = null;
BufferedWriter out = null;
//PrintWriter out = null;
try {
s = new Socket("127.0.0.1", 9999);
in = new BufferedReader(new InputStreamReader(s.getInputStream()))=
;
//out = new PrintWriter(s.getOutputStream(), false);
out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream(=
)));
} catch (UnknownHostException e) {
System.err.println("Unknown host");
System.exit(0);
} catch (IOException e) {
System.err.println("IO error");
System.exit(1);
}
String msg = "";
msg = in.readLine();
System.out.println(msg);
out.write("\"hi, socket\"");
Try:
out.flush();
here.
s.close();
}
}
Arne