java socket问题

2024-12-14 20:16:41
推荐回答(5个)
回答1:

空指针异常是由于:
1 你这个socket是null的,原因是:
你initSocket时是不是在成员变量上new Socket().而是新建了一个局部变量socket去创建.
但是你closeSocket关闭的是成员变量中的socket.

修改代码:
public void initsocket(){ try { socket = new Socket(hostname, port);
//不使用局部变量
.........
}
.......

回答2:

  1. 报socket为null,确实是1楼所述。你的initsocket()方法中创建的是一个局部变量socket,你初始化的并不是成员变量socket;将Socket socket = new Socket(hostname, port);改成socket = new Socket(hostname, port);就Ok。

  2. 我个人认为你在读/写异常的时候关闭socket。其他情况不用关闭,因为客户端的Socket是要连接服务器段的,当与服务器端通信发生故障时会发生异常,你在异常情况中处理就Ok。 

回答3:

nitSocket时是不是在成员变量上new Socket().而是新建了一个局部变量socket去创建. 但是你closeSocket关闭的是成员变量中的socket

回答4:

java 数据流关闭后,对应的Socket不会自动关闭

回答5:

这个不是很懂