黑马程序员技术交流社区

标题: 关于 tcp 连接的问题 [打印本页]

作者: XinWen    时间: 2014-5-2 19:53
标题: 关于 tcp 连接的问题
  1. import java.io.IOException;
  2. import java.net.ServerSocket;
  3. import java.net.Socket;
  4. import java.net.UnknownHostException;

  5. public class TCPDemo {

  6.         public static void main(String[] args) {
  7.                 class Server{
  8.                         private ServerSocket mServer;
  9.                         private Socket mClient;
  10.                        
  11.                        
  12.                         public void begin() throws IOException{
  13.                                 mServer = new ServerSocket(60000);
  14.                                 mClient = mServer.accept();
  15.                                
  16.                                 mClient.getOutputStream().write("nihao".getBytes());
  17.                                 System.out.println("server send over");
  18.                                
  19.                                 mClient.close();
  20.                                 mServer.close();
  21.                                 System.out.println("server  over");
  22.                         }
  23.                 }
  24.                 class Client{
  25.                         private Socket mClient;
  26.                        
  27.                         public void begin() throws UnknownHostException, IOException, InterruptedException{
  28.                                 mClient = new Socket("127.0.0.1", 60000);
  29.                                 Thread.sleep(3000);
  30.                                 System.out.println("Client recevice data");
  31.                                
  32.                                 System.out.println(mClient.getInputStream().read());
  33.                         }
  34.                 }
  35.                
  36.                 new Thread(new Runnable(){
  37.                         @Override
  38.                         public void run() {
  39.                                 try {
  40.                                         new Server().begin();
  41.                                 } catch (IOException e) {
  42.                                         // TODO Auto-generated catch block
  43.                                         e.printStackTrace();
  44.                                 }
  45.                         }
  46.                        
  47.                 }).start();
  48.                
  49.                 new Thread(new Runnable(){
  50.                         @Override
  51.                         public void run() {
  52.                                 try {
  53.                                         new Client().begin();
  54.                                 } catch (UnknownHostException e) {
  55.                                         // TODO Auto-generated catch block
  56.                                         e.printStackTrace();
  57.                                 } catch (IOException e) {
  58.                                         // TODO Auto-generated catch block
  59.                                         e.printStackTrace();
  60.                                 } catch (InterruptedException e) {
  61.                                         // TODO Auto-generated catch block
  62.                                         e.printStackTrace();
  63.                                 }
  64.                         }
  65.                        
  66.                 }).start();
  67.         }
  68.        
  69.        
  70. }
复制代码
我的思路是这样的。 开启了 服务器 和客户端。  客户端 连接上服务器, 服务器在 连接之后,会给 客户端发送 数据,然后关闭。而 客户端 连接上了 之后, sleep 3s 再接收数据。我的 问题是 ,客户端 sleep 醒来之后, 服务器 早就 关闭了 连接,那为什么
客户端还能从 流中 读取数据。

作者: skill20    时间: 2014-5-2 20:07
都放一个类的方法里了。。。
作者: XinWen    时间: 2014-5-2 20:26
skill20 发表于 2014-5-2 20:07
都放一个类的方法里了。。。

应该 和这个 没关系 把




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2