我用socket serversocker做一个类似通讯器的东西,用new 一个serversocket(5000)做监听时,第一次运行是正常,第2次运行开始就不行了,要换一个端口好才行!
本来想把我的程序贴上来.不过太乱了..
我的问题如果明白我的意思的话就帮下忙!
public class s {
ServerSocket server;
Socket sock;
DataInputStream in;
DataOutputStream out;
public s()
{
try{
server=new ServerSocket(6000);
System.out.println("wait");
sock=server.accept() ;
out=new DataOutputStream(sock.getOutputStream() );
out.writeUTF("server");
System.out.println("ok");
while(true){
String income;
in=new DataInputStream(sock.getInputStream());
System.out.println("...");
System.out.print(in.readUTF());//这里的in.readUTF()当没输入流进来时不是应该不运行才对吗?
//直到有新的输入流进才继续?这里跟我想的有点不同,不知为什么?
}
}
catch(Exception e){e.printStackTrace();}
}
public static void main(String[] args) {
new s();
}
}
我是在eclipse上运行的,以前在我在记事本上也做过,也没出现什么问题,在eclipse是就这样!
错误提示:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.net.SocketInputStream.read(SocketInputStream.java:182)
at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:320)
at java.io.DataInputStream.readUTF(DataInputStream.java:572)
at java.io.DataInputStream.readUTF(DataInputStream.java:547)
at s.<init>(s.java:39)
at s.main(s.java:60)