1. TCP编程
TCP协议是网络通信领域使用最广泛的协议之一。
和其他Linux下的编程方式一样,Python的TCP通信也可以基于Socket方式实现。TCP通信协议通过建立连接和应答来保证通信质量,它将通信设备分为Server和Client,两者的操作方式也有些区别。
1.1. TCP Server和Client
Server基本流程为:创建Socket -> 绑定IP和端口 -> 在绑定的IP和端口上监听连接请求 -> 接受Client发出的连接请求 -> 收发收据 -> 关闭连接。
下面是一个简单的例子,实现了基本的TCP Server功能。
import socket
import time
import sys
HOST_IP = "137.58.230.162"
HOST_PORT = 7654
#创建Socket,SOCK_STREAM表示类型为TCP
print("Starting socket: TCP...")
socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#绑定IP和端口,并进行监听
#137.58.230.162为本机IP,端口为7654
print("TCP server listen @ %s:%d!" %(HOST_IP, HOST_PORT) )
host_addr = (HOST_IP, HOST_PORT)
socket_tcp.bind(host_addr)
socket_tcp.listen(1)
#接受Client发出的连接请求,返回值包含了Client的IP和端口
socket_con, (client_ip, client_port) = socket_tcp.accept()
print("Connection accepted from %s." %client_ip)
#向Clinet发送数据
socket_con.send("Welcome to RPi TCP server!")
socket_tcp.close()
Client对应的流程要简单的多:创建Socket -> 向服务器发出连接请求 -> 连接建立成 -> 收发收据 -> 关闭连接。
代码如下:
import socket
import time
import sys
SERVER_IP = "137.58.230.162"
SERVER_PORT = 7654
#创建Socket,SOCK_STREAM表示类型为TCP
print("Starting socket: TCP...")
socket_tcp = socket.socket(socket.