Cannot invoke "java.net.Socket.getOutputStream()" because "this.socket" is null
时间: 2023-07-19 17:26:34 浏览: 100
这个错误通常是因为在调用 `getOutputStream()` 方法之前,没有正确地初始化 `Socket` 对象。请确保在调用 `getOutputStream()` 方法之前,先创建并连接了 `Socket` 对象。以下是一个简单的示例代码,可以帮助您了解Socket编程中的流程:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建Socket对象,指定服务器地址和端口号
Socket socket = new Socket("localhost", 8888);
// 获取输出流,向服务器发送消息
OutputStream outputStream = socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream);
printWriter.write("Hello Server!");
printWriter.flush();
// 关闭资源
printWriter.close();
outputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们首先创建了一个 `Socket` 对象,并指定了服务器地址和端口号。然后,我们获取输出流,并向服务器发送一条消息。最后,我们关闭资源,包括输出流、Socket对象等。注意,如果在创建 `Socket` 对象时出现错误,例如服务器地址或端口号不正确,会抛出 `UnknownHostException` 或 `ConnectException` 异常。