找不到符号方法getOutputStream()

时间:2011-11-23 15:45:48

标签: java

你好,当我尝试在我的程序中的连接方法中使用这两行代码时,它给出了错误“找不到符号方法getOutputStream()”我不知道我做错了什么,继承人代码< / p>

socket = new ServerSocket(6000);
socket.accept();

ObjectInputStream inputStream;
ObjectOutputStream outputStream;

outputStream = new ObjectOutputStream(socket.getOutputStream());
inputStream = new ObjectInputStream(socket.getInputStream());

我尝试使用的命令是否存在?

4 个答案:

答案 0 :(得分:7)

简单:ServerSocket拥有该方法。写入或读取简单的“监听”套接字是没有意义的 - 您需要使用与接受的套接字关联的流。

您应该使用:

ServerSocket serverSocket = new ServerSocket(6000);
Socket socket = serverSocket.accept();

ObjectOutputStream outputStream =
    new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream inputStream = new ObjectInputStream(socket.getInputStream());

请注意,这实际上是使用 ServerSocket.accept()的返回值,Socket - Socket 那些方法。

作为一个元评论,你说你“不知道”你做错了什么:编译器告诉你完全你做错了什么 - 尝试拨打getOutputStream ServerSocket上的方法。在看到编译器错误后,您的第一个调用端口应该是ServerSocket的Javadoc - 这可以让您确认它确实不存在

答案 1 :(得分:2)

ServerSocket不提供流。相反,它们一旦建立连接就提供子套接字,并且从那些套接字开始,你将得到你的流。所以你需要为socket.accept()分配一个Socket s2 =,并使用那里的流。

答案 2 :(得分:2)

getOutputStreamlink here没有ServerSocket方法。

您需要按如下方式接受连接:

Socket workingSocket = serverSocket.accept();

然后你会发现Socket the method you're after

答案 3 :(得分:0)

ServerSocket没有getOutputStream()和getInputStream()成员。

Here's the doc

here's the tutorial