今天学习了简单的套接字编程。练习了一个简单的UDP协议的客户服务器程序。
首先我们来写服务端的代码。 思路如下:设置相应端口号,然后实现服务功能。
from socket import *
serverPort=12000
serverSocket=socket(AF_INET,SOCK_DGRAM)
serverSocket.bind(('',serverPort)) #将服务器端口号与套接字绑定在一起
print("The server is ready to receive!")
while True:
message,clientAdress=serverSocket.recvfrom(2048) #接收客户端请求
modifiedMessage=message.decode().upper() #数据处理,可自由更改,此处为大写转换
serverSocket.sendto(modifiedMessage.encode(),clientAdress)
接下来编写客户端程序。客户端主要实现连接服务器相应端口,发送请求。
from socket import * #导入网络通信基础模块socket
serverName='localhost' #设置服务器地址
serverPort=12000 #设置服务器端口号
clientSocket=socket(AF_INET,SOCK_DGRAM) #创建客户套接字
message=input('Input lowercase sentence:') #输入请求报文
clientSocket.sendto(message.encode(),(serverName,serverPort)) #将报文发送给客户端套接字
modifiedMessage,serverAddress=clientSocket.recvfrom(2048) #接收服务端数据
print(modifiedMessage)
clientSocket.close #关闭套接字
结果:
注意事项:
在该程序中我们要将报文的字符串类型转换为字节类型,对应的函数为encode()与decode()。
因为我是将自己的pc作为服务器,所以客户端程序中serverName选择为localhost。大家可以根据自己实际情况选择。