当前位置: 代码迷 >> Java相关 >> socket serversocker
  详细解决方案

socket serversocker

热度:295   发布时间:2007-06-08 14:29:09.0
socket serversocker

我用socket serversocker做一个类似通讯器的东西,用new 一个serversocket(5000)做监听时,第一次运行是正常,第2次运行开始就不行了,要换一个端口好才行!
本来想把我的程序贴上来.不过太乱了..
我的问题如果明白我的意思的话就帮下忙!

搜索更多相关的解决方案: socket  serversocker  通讯器  端口  new  

----------------解决方案--------------------------------------------------------
你没有关闭ServerSocket的端口,当前就不行了


----------------解决方案--------------------------------------------------------

程序关了.还不行吗??


----------------解决方案--------------------------------------------------------
程序关了就可以了

有些界面的程序,你关了窗口,其实JVM还在运行

你去任务管理器看看java.exe或者javaw.exe有没有在运行
----------------解决方案--------------------------------------------------------

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)


----------------解决方案--------------------------------------------------------
那是你的客户机没有写好吧
----------------解决方案--------------------------------------------------------
在EC下面有个Console有个方块的按钮(在右边)如果是红色的就会出现你说的。
解决的方法就是按下红色方块那个按钮。就可以解决
----------------解决方案--------------------------------------------------------
  相关解决方案