Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail From: liyaohua.bupt@gmail.com Newsgroups: comp.lang.java.programmer Subject: Socket problem: read & write to same socket Date: Tue, 13 Mar 2012 09:01:44 -0700 (PDT) Organization: http://groups.google.com Lines: 67 Message-ID: <13556496.472.1331654504832.JavaMail.geo-discussion-forums@ynhs12> NNTP-Posting-Host: 131.193.36.84 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1331654514 19205 127.0.0.1 (13 Mar 2012 16:01:54 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 13 Mar 2012 16:01:54 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=131.193.36.84; posting-account=NjklqAoAAADSGBlIELlXZb7UZRW3Kyc3 User-Agent: G2/1.0 Xref: csiph.com comp.lang.java.programmer:12960 I want to establish connection to a server(written by myself in Go language= ), read from socket, and then write into socket. The connection can be established, and it reads correctly. But after that a= nd when I want to write to socket, it closes the connection. I used wiresha= rk to listen to the packets. I saw my program sent a FIN to the server side= . So the server receives nothing.=20 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 both r= ead and write. Thanks in advance! 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 { /** * @param args * @throws IOException=20 */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub Socket s =3D null; BufferedReader in =3D null; BufferedWriter out =3D null; //PrintWriter out =3D null; try { s =3D new Socket("127.0.0.1", 9999); in =3D new BufferedReader(new InputStreamReader(s.getInputStream())); //out =3D new PrintWriter(s.getOutputStream(), false); out =3D 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 =3D ""; msg =3D in.readLine(); System.out.println(msg); out.write("\"hi, socket\""); s.close(); } }