Java Socket编程笔记

来源:互联网 发布:linux 核 绑定 编辑:程序博客网 时间:2024/06/03 16:44

一. 用Socket通信的时候如果要用到ObjectInputStream 与 ObjectOutputStream的话,要确保Server端与Client端ObjectInputStream 与 ObjectOutputStream生成的顺序。 【转】

      在Server(Client)端生成一个ObjectInputStream流时必须确保在Client(Server)端生成一个ObjectOutputStream流。

      根据上述原则,合法的可能生成顺序有

      1、

            Server                          Client

            ObjectInputStream      ObjectOutputStream

            ObjectOutputStream    ObjectInputStream

 

      2、

            Server                          Client

            ObjectOutputStream    ObjectInputStream

            ObjectInputStream      ObjectOutputStream

 

     其他情况都会引起阻塞。


二. 无法通过保存Socket引用来保持连接。 【错误理解!Socket可保存,只是输入输出流不稳定】

public class Client {  private Socket socket;  public Client() {    this.socket = new Socket(host, port); // 不可以通过保存此引用来提供输出输入流  }}

Socket会在你不知道的时候(它认为不需要的时候)断开,这时候你保存的引用就已经被关闭了。

应该在每次欲进行通信的时候重新连接

socket = new Socket(host, port);