利用Python实现socket编程
1、客户端程序需完成功能:
1)从名为’pswd.txt’的文件中读取密码。
2)把密码发送到服务器程序。
3)显示服务器程序的返回结果
2、服务器程序需完成功能:
1)接受来自客户端程序发送的密码。
2)显示客户端的socket信息(IP地址,端口号)
3)验证密码是否正确(正确的密码为“123456”)
3)密码正确发送”correct”,否则返回”false”
客户端程序:
# udpclient.py
from socket import *
file = 'E:\pswd.txt'
#读取密码文件并保存至passwd变量
with open(file,'r') as f:
passwd = f.read()
f.close()
host = '127.0.0.1' #客户端IP
port = 13141 #客户端端口
bufsize = 1024 #定义缓冲大小
addr = (host,port)
udpClient = socket(AF_INET,SOCK_DGRAM) #创建客户端
passwd = passwd.encode(encoding="utf-8") #用utf-8的格式编码
udpClient.sendto(passwd,addr) #发送数据
response,addr = udpClient.recvfrom(bufsize) #接受数据和返回地址
response = response.decode(encoding='utf-8') #用utf-8的格式解码
print(response,'from',addr) #显示服务器的返回结果
udpClient.close() #关闭客户端
服务器端程序
# udpserver.py
from socket import *
host = '' #监听所有的IP
port = 13141
bufsize = 1024
addr = (host,port)
udpServer = socket(AF_INET,SOCK_DGRAM)
udpServer.bind(addr) #开始监听
while True:
print('Waiting for connection...')
passwd,addr = udpServer.recvfrom(bufsize) #接受数据和返回地址
passwd=passwd.decode(encoding='utf-8')
#判断密码是否正确:
if passwd == '123456':
response='correct'
else:
response='false'
udpServer.sendto(response.encode(encoding='utf-8') ,addr)
print('...recevied from and return to :',addr)
udpServer.close()
结果:
服务器监听
客户端接收返回信息并显示
服务器端显示客户端信息
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx