做会计应关注什么网站,江苏建设一体化平台网站,工商局企业信息查询系统官网,成都百度提升优化IP地址 IPv4IPv6查看本机的IP地址 win ipconfiglinux ifconfig ping命令 ping www.baidu.com 查看是否能连通指定的网站ping 192.168.1.222 查看是否能连通指定的IP Port端口 0-65535 TCP/IP协议 传输数据之前要建立连接#xff0c;通过三次握手建立#xff1a; 客户端 --通过三次握手建立 客户端 -- 服务端 SYN 客户端告诉服务端我是谁服务端 -- 客户端 , ACK SYN 服务端告诉客户端我收到了你的SYNACK服务端告诉客户端我是谁 SYN 客户端 -- 服务端 ACK 服务端告诉客户端我收到了你的SYN 同时确认你收到了我的SYNACK 开始传输数据 报文内容 报文类似元数据描述数据从哪来、到哪去数据大小、数据类型等内容byteString类型即bytes
bytes和str类型的互相转换
a 哈萨克斯坦#$%^*(abc
# str - bytes类型(byte String)
# 按照utf8的格式将str转为byteString类型
a_bytes a.encode() # 默认utf8
print(a_bytes)# bytes类型 - str
a a_bytes.decode() # 默认utf8
print(a) b\xe5
bytes 字节类型字符串 只是为了方便网络通讯 16进制数字来表述符号
【b】 表示bytes
【\xe5】 表示后边两个字符是16进制数字
# 按照gbk的格式将str转为byteString类型
b_bytes a.encode(gbk)
print(b_bytes)
b b_bytes.decode(gbk) # bytes类型 - str
print(b)# bytes数据一定可以转换为字符串吗
# 不一定比如图片、视频、音频等TCP服务端代码 跨服务器测试时 服务端代码和客户端代码必须在同一个网段之内服务端绑定ip时请使用 0.0.0.0对应的客户端代码要连接的ip写服务端的IP TCP 服务端
import socket# ① 创建一个服务端socket套接字负责接收客户端的请求门迎
# socket.AF_INET使用IPV4的地址
# socket.SOCK_STREAM使用TCP协议
server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# ② 绑定服务端的ip地址和端口号
# (ip地址, 端口号)
# server_socket.bind((127.0.0.1, 8080))
server_socket.bind((192.168.25.76, 8080))# ③ 设置服务端进入监听状态
# 服务端同一时间支持多少个客户端向它发起连接请求
server_socket.listen(128)# ④ 服务端等待客户端进行连接
print(服务端等待接收客户端的请求...)# 没有客户端来连接服务端时accept方法会阻塞等到直到有客户端来连接accept才会返回
# service_client_socket也是一个 socket 对象负责和对应的客户端进行通信服务员
# ip_port是一个元祖包含的是客户端的ip和port
service_client_socket, ip_port server_socket.accept()
print(f服务端来自{ip_port}客户端的连接...)# ⑤ 服务端接收客户端发送的数据
# 如果客户端没有给服务端发送消息recv也会阻塞等待
recv_msg service_client_socket.recv(1024) # bytes
print(f接收到来自客户端的消息{recv_msg.decode()})# ⑥ 服务端给客户端回应数据
send_msg input(请输入给客户端回应的消息) # str
service_client_socket.send(send_msg.encode())# ⑦ 关闭服务端的 socket
service_client_socket.close()
server_socket.close()TCP客户端代码
TCP客户端
import socket# ① 创建一个客户端的 socket 套接字
client_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# ② 通过客户端 socket 连接服务端
client_socket.connect((192.168.25.76, 8080))# ③ 发送消息给服务端
send_msg input(请输入发送给服务端的消息)
client_socket.send(send_msg.encode())# ④ 接收服务端回应的消息
recv_msg client_socket.recv(1024) # bytes
print(f接收到来自服务端的消息{recv_msg.decode()})# ⑤ 关闭客户端 socket
client_socket.close()