本文章主要介绍的是TCP客服端与服务端的连接测试。将使用的编程语言是万物皆可的python语言。基本知识:客服端与服务端的三次握手与四次挥手。
下图表示的是客服端与服务端的三次握手(左边)与四次挥手的过程。
文章图片
明白了客服端与服务端的连接与断开(其实代码和这没太大关系,当知识点看就行了~),接下来上具体的代码。
python编写客服端和服务端连接(这里我们用网络调试器)
import socket
#进行客服端与服务端的网络调试
if __name__ == '__main__':
#创建套接字对象
#AF_INET:代表的是创建的连接的ip地址类型为ipv4
#SOCK_STREAM:表示tcp协议
client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#与服务端创建连接
#与服务端进行三次握手
client_socket.connect(("192.168.245.1",8080))
#与服务端进行信息交流
client_data = "https://www.it610.com/article/hello!服务端".encode('utf-8')
#发送信息给服务端
client_socket.send(client_data)
#打印发送的信息此处的信息为十六进制加码
print(client_data)
#接收服务端的信息 1024表示服务端发送的信息最大为1024
server_socket = client_socket.recv(1024)
#进行解码为gbk类型
print('服务端发送的信息:',server_socket.decode('gbk'))
#关闭客服端
client_socket.close()
tcp客服端与服务端的连接主要步骤是:
- 创建套接字
- 与服务端进行连接(ip/端口)
- 发送信息看服务端是否接收的到,打印服务端发送的信息进行验证
- 关闭套接字
文章图片
python编写服务端与客服端进行连接(这里我们也用网络调试器)
import socketif __name__ == '__main__':
#创建套接字
socket_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定ip 与端口
socket_server.bind(('',8080))
#设置监听 最大监听数为128
socket_server.listen(128)
#等待客服端的连接
print('正在等待客服端的接入。。。')
#分配新的套接字和ip
new_socket_server,ip_port = socket_server.accept()
#与客服端进行交流
while True:
# 接收客服端的信息
client_data = new_socket_server.recv(1024)
if client_data:
print(client_data.decode('gbk'),ip_port)
conn_data = https://www.it610.com/article/input()
new_socket_server.send(conn_data.encode('utf-8'))
else:
print('客服端下线le。。。',ip_port)
break
#关闭套接字
new_socket_server.close()
socket_server.close()
tcp服务端与客服端的连接主要步骤是:
- 创建套接字
- 绑定ip和端口
- 等待客服端的接入(服务端会分配新的套接字和ip)
- 进行信息交流
文章图片
【测试TCP客服端与服务端连接(python)】 附上网络调试器的下载地址:mNetAssist网络试调器
如果真有需要,记得评论区私信我~
END~
推荐阅读
- 【数据处理】python连接mysql数据库
- 小白都看得懂的监督学习与无监督学习
- java|论如何逼疯一个前端开发者 | 每日趣闻
- 网络|iOS 15.5 被曝“偷跑”流量(苹果(建议恢复出厂设置))
- 李宏毅机器学习HW|Homework 1: COVID-19 Cases Prediction (Regression)
- youcans|【youcans 的 OpenCV 例程200篇】197.轮廓的基本特征
- youcans|【youcans 的 OpenCV 例程200篇】199.轮廓的外接边界框
- youcans|【youcans 的 OpenCV 例程200篇】195.绘制图像轮廓(cv.drawContours)
- youcans|【youcans 的 OpenCV 例程200篇】194.寻找图像轮廓(cv.findContours)