TCP Socket与TCP 连接

      最后更新:2022-06-28 11:59:20 手机定位技术交流文章

      1.TCP插座和TCP连接

      • tcp socket
        tcp接口代表一个主机的进程,是一个tcp接口的一个端的例子。 它不是连接,它只是代表一个端的接口。
      • tcp 连接
        tcp连接由进程在两个主机上的插座连接组成。

      1.1tcp服务终止

      要建立一个tcp连接,需要执行一个服务器角色的单端进程:

      • 通过socket()系统要求一个新的插座(只创建局域的tcp插座并不能形成连接);
      • 将IP和端口绑定到新的插座上。

      它包含serv_addr结构内部的IP和端口信息。

      • 通过listen()系统调用监听连接
      • 通过accept()系统调用接收连接

      这里是newsockfdaccept() 当服务器监控连接请求时,它使用这个新生成的接口来与远程客户端的接口进行通信。
      server.c核心代码(多进程版本,每个进程处理一个客户端连接)

      server.c这是tcp服务器的多进程版本。如果有新的请求,请使用fork()系统调用生成处理连接请求的新进程:

      事实上,您也可以使用多个线程来处理请求。pthread_create() 请调用并生成一个新的线程。
      事实上,处理多个请求的最有效的方法是使用系统epoll 通过事件通知机制进行处理请求的非封锁。

      1.2Tcp客户端

      为创建tcp连接,tcp客户端会执行以下操作:

      • 新建socket
      • 通过系统调用连接()并与远程服务器监控接口启动连接请求。
      • 在连接成功后,可以通过读()和写()在新的接口实现通信。

      二.插座文件

      在所有类似Unix的系统中,由进程生成的索克由索克文件代表,并通过阅读和写入内容将消息传递给索克文件。
      在Linux中,插座文件通常位于 /proc/pid/fd 下。 通过上面的 server.c 和 client.c 练习并浏览相应的插座文件。

      预编译 server.c和 client.c

      在30,00个本地端口上运行:

      server 30000

      用lsof或netstat检查服务器进程ID

      根据pid(17009),浏览目录/proc/17009/fd,查看:

      索克:[1293853508]是索克文件。

      运行客户端并连接到服务器。

      client localhost 30000

      不要先发送消息,保持连接。 然后通过lsof命令查看30,00个端口:

      查看图中的NAME列

      • 第一个行,*:30,00是听索克文件的服务器名称
      • 第二行,localhost:57684->localhost:30000 (ESTABLISHED)是client端端socket文件名
      • 第三行,localhost:30000->localhost:57684 (ESTABLISHED)是server 端为client端的请求建立的新的socket,负责和client通信

      三.Unix域名插座

      上面提到的接口是互联网域名接口,用于不同主机之间的进程的通信。在Unix中,机器之间的进程通信通常使用另一个接口(Unix域接口)。新的Unix域接口连接和互联网域接口连接几乎相同。唯一的区别是,当索克()系统调用时,输入索克类型是不同的。

      注意上面的AF_UNIX和AF_INET之间的区别。

      Unix插座服务器程序userver.c

      Unix接口客户端程序uclient.c

      编译:

      gcc userver.c -o userver
      gcc uclientj.c -o uclient

      服务器接收了一个创建索克文件的参数,该参数是索克文件的名称,例如,使用/tmp/usfd作为索克文件。

      userver /tmp/usfd

      检查新制作的插座文件:

      ls -l /tmp/usfd

      该文件的模式字符串中的第一个字符表示它是一个插座文件。
      来源链接: https://blog.csdn.bdss58/article/details/77929685

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/28693.html

          热门文章

          文章分类