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次,但是第二次应该就连不上了,因为服务端已经关闭了
没有实测,理论上不应该出现你的这个错误啊。
------解决思路----------------------
网上先找些例子学习。。