python 网络编程示例 TCP客户端、服务端搭建

使用python实现TCP数据上报功能,需要具体由客户端、服务端构成。代码非常简单。如下所示。
1、客户端Python代码示例

from socket import *

# 1. 创建socket
tcp_client_socket = socket(AF_INET, SOCK_STREAM)

# 2. 链接服务器
tcp_client_socket.connect(("127.0.0.1", 26788))

# 提示用户输入数据
send_data = 'data'

# 3. 向服务器发送数据
tcp_client_socket.send(send_data.encode("utf-8"))

# 4.接收服务器发送的消息,最多接收1024字节
msg = tcp_client_socket .recv(1024)
print(msg.decode())

# 5. 关闭套接字
tcp_client_socket.close()

2、以下代码便可运行最简单的TCP服务端

import socket


# 1. 创建TCP套接字
server_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2. 绑定本地信息
server_s.bind(("", 26788))

# 3. 设置为被动的
server_s.listen(128)

# 4. 等待客户端链接
new_s, client_info = server_s.accept()

# 5. 用新的套接字为已经连接好的客户端服务器
recv_content = new_s.recv(1024)
print("%s>>>%s" % (str(client_info), recv_content.decode("gbk")))

#6.服务端回复消息给客户端
new_s.send(b'OK')

# 6. 关闭套接字
new_s.close()
server_s.close()

3、持续接收客户端上报数据
在实际工程中,我们的服务端程序会一直监听TCP上报的数据,比如在物联网场景,因此,我们需要将TCP程序进行修改。可以参考以下样例:

import socket


# 1. 创建TCP套接字
server_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2. 绑定本地信息
server_s.bind(("", 26788))

# 3. 设置为被动的
server_s.listen(128)

print('开始监听26788端口接收上报的信息\n')

# 4. 等待客户端链接
new_s, client_info = server_s.accept()

while True:
    # 5. 用新的套接字为已经连接好的客户端服务器
    recv_content = new_s.recv(1024)
    print("%s>>>%s" % (str(client_info), recv_content.decode("gbk")))

    #6.服务端回复消息给客户端
    new_s.send(b'OK')

    if not recv_content:
        # 6. 关闭服务套接字
        # 当客户端调用了close后,recv_content返回值为空时,close()
        new_s.close()

server_s.close()

你可能感兴趣的:(python在工作中的应用教程,网络,tcp/ip,网络协议)