tcp-ip浅谈


  在互联网协议中按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层。规定网络地址的协议叫ip协议

  一般通俗的有应用层,传输层,网路层,数据链路层,物理层五层

  http://www.cnblogs.com/linhaifeng/articles/5937962.html#_label4

  对于经常说的3次握手4次挥手可以从下图看出(摘自一位老师的博客图片)

  下面先来2段通用的socket例子

 // 启动一个socket服务端
        ServerSocket aa = new ServerSocket(9000);
        // (监听该端口)该方法是阻塞的,不关闭一直会处于等待状态
        Socket jt= aa.accept();  

        // 接收数据
        InputStream sou = jt.getInputStream();

        byte[] b = new byte[1024];
        int xx= sou.read(b);//read方法是阻塞的,不关闭一直会处于等待状态

        //将二进制转换为原来的数据
        String string = new String(b,0,xx);
        System.out.print(string);
        /**
         * 发送数据
         */
//        OutputStream out = jt.getOutputStream();
//        out.write("xiaodongbai".getBytes());
        
//        out.close();
        sou.close();
        jt.close();  
 // 向服务端发出建立连接的请求
        Socket lj= new Socket("127.0.0.1", 9000);
        
        /**
         * 发送数据
         */
        // 从连接中拿到一个发数据的工具
        OutputStream out = lj.getOutputStream();
        // 利用out流发数据
        out.write("ok".getBytes());
        
        /**
         * 接收数据
         */
//        InputStream in = lj.getInputStream();
//        byte[] b = new byte[1024];
//        int num = in.read(b);
//        System.out.println(new String(b,0,num));
//        
//        
//        in.close();
        out.close();
        lj.close();