加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

Python 绝技 —— TCP 服务器与客户端

发布时间:2019-08-28 19:23:34 所属栏目:外闻 来源:ciphersaw
导读:0x00 前言 本文先介绍因特网的核心协议 TCP ,再以 Python 的 socket 模块为例介绍网络套接字,最后给出 TCP 服务器与客户端的 Python 脚本,并演示两者之间的通信过程。 0x01 TCP 协议 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接、

listen() 函数用于 TCP 服务器开启套接字的监听功能。函数原型如下:

  1. socket.listen([backlog]) 
  • backlog 可选参数代表套接字在拒绝新连接之前,操作系统可以挂起的最大连接数。backlog 参数一般设置为 5,若未设置,系统会为其自动设置一个合理的值。

connect() 函数

connect() 函数用于 TCP 客户端向 TCP 服务器发起连接请求。函数原型如下:

  1. socket.accept() 

address 参数代表套接字要连接的地址,其格式取决于套接字的 family 参数。若 family 参数为 AF_INET,则 address 参数表示为二元组 (host, port),其中 host 是用字符串表示的主机地址,port 是用整型表示的端口号。

accept() 函数

accept() 函数用于 TCP 服务器接受 TCP 客户端的连接请求。函数原型如下:

  1. socket.accept() 

accept() 函数的返回值是二元组 (conn, address),其中 conn 是服务器用来与客户端交互数据的套接字对象,address 是客户端的 IP 地址与端口号,用二元组 (host, port) 表示。

send() 函数

send() 函数用于向远程套接字对象发送数据。注意,本机套接字必须与远程套接字成功连接后才能使用该函数,否则会报错。可见,send() 函数只能用于 TCP 进程间通信,而对于 UDP 进程间通信应该用 sendto() 函数。函数原型如下:

  1. socket.send(bytes[, flags]) 

bytes 参数代表即将发送的 bytes 对象数据。例如,对于字符串 "hello world!" 而言,需要用 encode() 函数转换为 bytes 对象 b"hello world!" 才能进行网络传输。

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读