【发布时间】:2011-07-15 20:56:20
【问题描述】:
好的,我将一个 int 从一个 java 程序发送到另一个(此时在同一台计算机上)。 但是,有时我会遇到异常并且无法连接:
线程“主”java.net.ConnectException 中的异常:连接被拒绝:连接 在 java.net.PlainSocketImpl.socketConnect(本机方法) 在 java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) 在 java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) 在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 在 java.net.Socket.connect(Socket.java:529) 在 java.net.Socket.connect(Socket.java:478) 在 java.net.Socket.(Socket.java:375) 在 java.net.Socket.(Socket.java:189) 在 Client.main(Client.java:6)
这里是发送代码:
Socket socket = new Socket("localhost" , 8080);
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeInt(5);
socket.close();
用于接收:
ServerSocket serverSocket = new ServerSocket(8080);
Socket socket = serverSocket.accept();
DataInputStream din = new DataInputStream(socket.getInputStream());
System.out.println(din.readInt());
socket.close();
这很奇怪,因为有时它会起作用,有时却不起作用。有没有人知道为什么?
【问题讨论】:
-
附注:使用后记得关闭 DataOutputStream。
-
您确定服务器套接字在使用套接字时正在监听?
-
创建socket的时候报错,所以有时会因为没有服务器而失败。
-
请发布异常的根本原因!
-
另外,你知道你的服务器代码在死前只会处理一个客户端,对吧? (至少从您向我们展示的内容来看)。
标签: java sockets exception dataoutputstream