当前位置: 代码迷 >> J2SE >> Net 中服务端与客户端连接的有关问题
  详细解决方案

Net 中服务端与客户端连接的有关问题

热度:151   发布时间:2016-04-23 19:49:19.0
Net 中服务端与客户端连接的问题

import java.net.*;
import java.io.*;

public class TcpClient {
public static void main(String[] args) {
try {
Socket s = new Socket("127.0.0.1",9999);
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
DataInputStream dis = new DataInputStream(s.getInputStream());
dos.writeUTF("The World from Client !");
System.out.println(dis.readUTF());
dos.close();
dis.close();
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
System.out.println("gagaga");
} catch (IOException e){ 
e.printStackTrace();
}
}
}

import java.io.*;
import java.net.*;

public class TcpServer {
public void main(String[] args){
try {
ServerSocket ss = new ServerSocket(9999);
while (true){
Socket s = ss.accept();
System.out.println("A client connected !");
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
DataInputStream dis = new DataInputStream(s.getInputStream());
System.out.println(dis.readUTF());
dos.writeUTF("The world from Server !");
dos.close();
dis.close();
ss.close();
}

}catch (IOException e){
e.printStackTrace();
}
}
}

为什么会报这样的错误,怎么解决

at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at TcpClient.main(TcpClient.java:8)

------解决思路----------------------
你的代码问题很多,格式又不规范,看着真的很累人,下次贴代码的时候记得贴在代码标签之中。

1、TcpServer类的main方法不是static的,不知道你是怎么运行的?
2、TcpServer既然写了while(true)循环,却在第一个次循环的时候,就将ss关闭了,那你还怎么监听啊,循环还有啥意义?
3、你的客户端应该可以连接上服务器端1次,但是第二次应该就连不上了,因为服务端已经关闭了
没有实测,理论上不应该出现你的这个错误啊。
------解决思路----------------------
网上先找些例子学习。。
  相关解决方案