Python TCP套接字编程
使用两台机器建立基于TCP的通信,其中客户端的地址为192.168.1.1
,服务端的地址为192.168.1.2
与UDP不同,TCP是面向连接的服务,在发送数据之前首先需要进行连接 —— 三次握手过程,为此TCP套接字编程与UDP套接字编程有所区别
使用Python语言实现
接下来我们分别建立客户端和服务端的python代码
代码实现
客户端代码(client_tcp.py):
python">from socket import *
server='192.168.1.2'
port=12000
socket_client=socket(AF_INET,SOCK_STREAM) # AF_INET表示使用IPv4,SOCK_STREAM表示使用TCP套接字
socket_client.connect((server,port)) # 建立TCP连接,即三次握手过程
message="I'am client!"
socket_client.send(message.encode()) # 两台主机之间建立通信是通过进程的进行的,因此需要明确端口号(当然首先要明确主机地址)
message_receive=socket_client.recv(1024) # 1024表示缓存长度
print("The address of server is:",server)
print("The message from server is:",message_receive.decode())
socket_client.close()
服务端代码(server_tcp.py):
python">from socket import *
port=12000
socket_server=socket(AF_INET,SOCK_STREAM)
socket_server.bind(('',port))
socket_server.listen(1)
message_server="I'm server!"
while True:
connection,address_client=socket_server.accept()
message=connection.recv(1024)
print('The address of client is:',address_client)
print('The message from client is:',message.decode())
connection.send(message_server.encode())
connection.close()
运行结果
[ 运行客户端前需先运行服务端 ]
客户端
The address of server is: 192.168.1.2
The message from server is: I'm server!
服务端
The address of client is: ('192.168.1.1', 58621)
The message from client is: I'am client!
可以看到客户端和服务端完成了通信
计算机网络:自顶向下方法