zoukankan      html  css  js  c++  java
  • 什么是 socket?简述基于 tcp 协议的套接字通信流程?

     Socket的英文原义是"孔"或"插座"。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,

    可以用来实现不同虚拟机或不同计算机之间的通信。

    在Internet上的主机一般运行了多个服务软件,同时提供几种服务每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。

    基于tcp 协议的套接字通信流程:

    1). 服务器先用 socket 函数来建立一个套接字,用这个套接字完成通信的监听。 
    2). 用 bind 函数来绑定一个端口号和 IP 地址。因为本地计算机可能有多个网址和 IP,每一个 IP 和端口有多个端口。需要指定一个 IP 和端口进行监听。 
    3). 服务器调用 listen 函数,使服务器的这个端口和 IP 处于监听状态,等待客户机的连接。 
    4). 客户机用 socket 函数建立一个套接字,设定远程 IP 和端口。 
    5). 客户机调用 connect 函数连接远程计算机指定的端口。 
    6). 服务器用 accept 函数来接受远程计算机的连接,建立起与客户机之间的通信。 
    7). 建立连接以后,客户机用 write 函数向 socket 中写入数据。也可以用 read 函数读取服务器发送来的数据。 
    8). 服务器用 read 函数读取客户机发送来的数据,也可以用 write 函数来发送数据。 
    9). 完成通信以后,用 close 函数关闭 socket 连接。

  • 相关阅读:
    PTA(Advanced Level)1037.Magic Coupon
    PTA(Advanced Level)1033.To Fill or Not to Fill
    PTA(Basic Level)1020.月饼
    PTA(Advanced Level)1048.Find Coins
    PTA(Advanced Level)1050.String Subtraction
    PTA(Advanced Level)1041.Be Unique
    PTA(Basci Level)1043.输出PATest
    PTA(Basic Level)1039.到底买不买
    PTA(Basic Level)1033.旧键盘打字
    PTA(Advanced Level)1083.List Grades
  • 原文地址:https://www.cnblogs.com/Rivend/p/12047299.html
Copyright © 2011-2022 走看看