问题遇到的现象和发生背景
UDP线程模拟可以实现,为何TCP不行?
运行结果及报错内容
运行报出链接异常
问题相关代码,请勿粘贴截图
package sendandreceive;
import java.io.*;
import java.net.*;
class Client implements Runnable{
private Socket s;
Client(Socket s){
this.s=s;
}
public void run() {
try {
BufferedReader br=new BufferedReader(
new InputStreamReader(System.in));
PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
String line=null;
while((line=br.readLine())!=null) {
if("over".equals(line)) {
break;
}
pw.println(line);
}
br.close();
s.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
class Server implements Runnable{
private ServerSocket ss;
Server(ServerSocket ss){
this.ss=ss;
}
public void run() {
try {
Socket s=ss.accept();
BufferedReader br=new BufferedReader(
new InputStreamReader(s.getInputStream()));
//PrintWriter pr=new PrintWriter(new FileWriter(""),true);
String line=null;
while((line=br.readLine())!=null) {
System.out.println(line);
}
s.close();
ss.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
public class TCP {
public static void main(String[] args) throws Exception {
Socket s =new Socket("x",10000);
ServerSocket ss=new ServerSocket(10000);
new Thread(new Client(s)).start();
new Thread(new Server(ss)).start();
}
}
TCP线程模拟实现最后报出链接异常,提示在("x",10000)这行代码上,x填写的是本机IP地址,询问一下是不能使用线程模式还是代码有错误->可Socket s=ss.accept();已创建链接,如果有错误希望指出并改正谢谢!