TCP客户端与服务端建立以及测试——缇友的python学习笔记

一、客户端创建以及测试

书写代码

import socket
if __name__ == '__main__':

    tcp_test_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 创建tcp套接字
    # AF_INET:使用的地址类型是ipv4
    # SOCK_STREAM:使用的协议是TCP
    tcp_test_socket.connect(('192.168.86.1',8080))
    # 设定链接的服务端的IP和端口
    # .connect函数只接收一个参数,所以需要用元组传递IP和端口
    send_test_data='这里是客户端!收到请回复!'
    # 创建一个参数储存发送的数据,可以使用input
    send_test_data_encode=send_test_data.encode('gbk')
    # 将数据转码成gbk,Windows编码为gbk,Linux编码为utf-8
    tcp_test_socket.send(send_test_data_encode)
    # 将转码好的数据传输
    recv_test_data=tcp_test_socket.recv(1024)
    # 设定一个参数接收数据,同时设定接收的最大字节数是1024
    print(recv_test_data)
    # 将接收到的数据直接打印,跟后面转码过的进行对比
    recv_test_data_decode=recv_test_data.decode('gbk')
    # 将接收到的数据转码并且储存到新的参数里
    print(recv_test_data_decode)
    # 打印转码后的数据
    tcp_test_socket.close()
    # 关闭套接字

测试流程:

1.使用网络调试助手,调整为tcp服务端模式,并且设置好端口,然后打开等待链接

2.运行代码后发现调试助手已经接收到了信息

 3.测试接收有没有问题,在下面发送一段信息

 4.查看运行结果

 

 二、服务端创建以及测试

测试流程:

1.书写代码并运行

import socket
if __name__ == '__main__':
    tcp_server_test=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 创建套接字
    # AF_INET:IP地址类型为ipv4
    # SOCK_STREAM:TCP协议
    tcp_server_test.bind(('',9090))
    # 设置监听
    # IP地址默认不设置,防止当前服务器或电脑有多个IP
    # 与客户端一致,只接受一个参数,使用元组传递参数
    tcp_server_test.listen(128)
    # 设置最大监听个数为128
    server_connect_socket,ip_port=tcp_server_test.accept()
    # 创建两个参数对接收的数据进行拆包
    # server_connect_socket储存套接字
    # ip_port储存IP和端口
    print(f'客户端的地址和端口号:{ip_port}')
    # 打印一下
    recv_data=server_connect_socket.recv(1024)
    # 创建一个参数储存接收的数据,最大为1024字节
    print(recv_data.decode('gbk'))
    # 将接收的数据转码后输出
    send_data='数据处理中!请稍后...'
    # 设置参数储存准备发送给客户端的数据
    server_connect_socket.send(send_data.encode('gbk'))
    # 将数据转码后发给客户端
    tcp_server_test.close()
    # 对话结束,关闭套接字

2.使用调试助手对服务端发起请求,设置IP和端口事宜已经说过不在强调

 3.查看代码输出端发现已经收到了客户端的IP和端口,与上图信息对比发现一致

 4.使用调试助手传输一些信息,发现服务端收到了信息,客户端也收到了提示信息

 

 三、使用创建的客户端和服务端进行一次通信

测试流程:

1.先把调试助手关掉,稍微调整一下代码(改一下端口)

客户端:

import socket
if __name__ == '__main__':

    tcp_test_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 创建tcp套接字
    # AF_INET:使用的地址类型是ipv4
    # SOCK_STREAM:使用的协议是TCP
    tcp_test_socket.connect(('192.168.86.1',9090))
    # 设定链接的服务端的IP和端口
    # .connect函数只接收一个参数,所以需要用元组传递IP和端口
    send_test_data='这里是客户端!收到请回复!'
    # 创建一个参数储存发送的数据,可以使用input
    send_test_data_encode=send_test_data.encode('gbk')
    # 将数据转码成gbk,Windows编码为gbk,Linux编码为utf-8
    tcp_test_socket.send(send_test_data_encode)
    # 将转码好的数据传输
    recv_test_data=tcp_test_socket.recv(1024)
    # 设定一个参数接收数据,同时设定接收的最大字节数是1024
    print(recv_test_data)
    # 将接收到的数据直接打印,跟后面转码过的进行对比
    recv_test_data_decode=recv_test_data.decode('gbk')
    # 将接收到的数据转码
    print(recv_test_data_decode)
    # 打印转码后的数据
    tcp_test_socket.close()
    # 关闭套接字

服务端

import socket
if __name__ == '__main__':
    tcp_server_test=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 创建套接字
    # AF_INET:IP地址类型为ipv4
    # SOCK_STREAM:TCP协议
    tcp_server_test.bind(('',9090))
    # 设置监听
    # IP地址默认不设置,防止当前服务器或电脑有多个IP
    # 与客户端一致,只接受一个参数,使用元组传递参数
    tcp_server_test.listen(128)
    # 设置最大监听个数为128
    server_connect_socket,ip_port=tcp_server_test.accept()
    # 创建两个参数对接收的数据进行拆包
    # server_connect_socket储存套接字
    # ip_port储存IP和端口
    print(f'客户端的地址和端口号:{ip_port}')
    # 打印一下
    recv_data=server_connect_socket.recv(1024)
    # 创建一个参数储存接收的数据,最大为1024字节
    print(recv_data.decode('gbk'))
    # 将接收的数据转码后输出
    send_data='数据处理中!请稍后...'
    # 设置参数储存准备发送给客户端的数据
    server_connect_socket.send(send_data.encode('gbk'))
    # 将数据转码后发给客户端
    tcp_server_test.close()
    # 对话结束,关闭套接字

2.先打开服务端,然后打开客户端,发现已经完成了通信,测试成功!

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值