你好,当我尝试在我的程序中的连接方法中使用这两行代码时,它给出了错误“找不到符号方法getOutputStream()”我不知道我做错了什么,继承人代码< / p>
socket = new ServerSocket(6000);
socket.accept();
ObjectInputStream inputStream;
ObjectOutputStream outputStream;
outputStream = new ObjectOutputStream(socket.getOutputStream());
inputStream = new ObjectInputStream(socket.getInputStream());
我尝试使用的命令是否存在?
答案 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)
getOutputStream
类link here没有ServerSocket
方法。
您需要按如下方式接受连接:
Socket workingSocket = serverSocket.accept();
然后你会发现Socket
类 有the method you're after。
答案 3 :(得分:0)