美文网首页
四 . TCP 编程

四 . TCP 编程

作者: 任未然 | 来源:发表于2019-10-11 22:37 被阅读0次

什么是 TCP 编程

TCP 编程是建立在 TCP 协议上的 Socket 编程

什么是 TCP 协议

TCP (Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。

什么是 Socket

  • 所谓 Socket 通常也称作“套接字”,用于描述 IP 地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。
  • Socket 是连接运行在网络上的两个程序间的双向通信的端点。
  • 网络通讯其实指的就是 Socket 间的通讯。
  • 通讯的两端都有 Socket,数据在两个 Socket 之间通过 IO 来进行传输。

TCP 编程案例

  1. 建立服务器
  2. 建立客户端并且连接服务端
  3. 客户端向服务器发送请求--第一次握手
  4. 服务器接收到客户端的请求,并且响应客户端--第二次握手
  5. 客户端接收到服务器的响应--第三次握手
    // 客户端
     public static void main(String[] args) throws IOException {
        Socket socket = new Socket("127.0.0.1",8888);
        Scanner sc = new Scanner(System.in);
        InputStream is = socket.getInputStream();
        OutputStream os = socket.getOutputStream();
        byte[] b = new byte[1024];
        int len;
        try{
            while(true){
                os.write(("客户端:"+sc.nextLine()).getBytes());
                len = is.read(b);
                System.out.println(new String(b,0,len));
            }
        }finally {
            CloseUtils.closeAll(os,is,socket);
        }
    }
    
    //服务端
    public static void main(String[] args) throws IOException {
        ServerSocket server = new ServerSocket(8888);
        Socket socket = server.accept();
        Scanner sc = new Scanner(System.in);
        InputStream is = socket.getInputStream();
        OutputStream os = socket.getOutputStream();
        byte[] b = new byte[1024];
        int len;
        try{
            while(true){
                len = is.read(b);
                System.out.println(new String(b,0,len));
                os.write(("服务端:"+sc.nextLine()).getBytes());
            }
        }finally {
            CloseUtils.closeAll(is,os,socket);
        }
    }

什么是三次握手

TCP 是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在 TCP/IP 协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 信息。

相关文章

网友评论

      本文标题:四 . TCP 编程

      本文链接:https://www.haomeiwen.com/subject/waqfmctx.html