介绍
之前在用C语言实现套接字时,详细介绍了套接字的各个部分。这次用python实现套接字只是随便玩玩。
python套接字的库是自带的:socket
视频演示
客户端代码
python实现跟C很不同的一点是,python传送的信息不能是string类型。如果想传送string类型的数据结构必须用encode()函数转成byte类型。
代码一目了然:
import socket as sck
# 目的地,服务器的IP地址和端口号
serverName = '127.0.0.1'
serverPort = 12000
clientSocket = sck.socket(sck.AF_INET, sck.SOCK_DGRAM)
message = input('Input lowercase sentence:')
clientSocket.sendto(message.encode(), (serverName, serverPort))
# 2048是缓冲区大小
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print(modifiedMessage.decode())
clientSocket.close()
服务器代码
import socket as sck
serverPort = 12000
serverSocket = sck.socket(sck.AF_INET, sck.SOCK_DGRAM)
# 将端口号和套接字绑定
serverSocket.bind(('', serverPort))
print("The server is ready to receive")
while True:
message, clientAddress = serverSocket.recvfrom(2048)
print("The massage form", clientAddress, ':')
print(message.decode())
modifiedMessage = message.decode().upper()
serverSocket.sendto(modifiedMessage.encode(), clientAddress)