网络编程:套接字基于UDP的应用(一)
模拟通信,进行消息的收发
【1】初版server端
from socket import *
print("服务器已启动")
HOST = '0.0.0.0'
PORT = 8888
ADDR = (HOST, PORT)
# 创建套接字
sock = socket(AF_INET, SOCK_DGRAM)
# 绑定地址
sock.bind(ADDR)
# 消息收发
while True:
data, addr = sock.recvfrom(1024)
print("Receive from %s:%s" % (addr, data.decode()))
sock.sendto("收到消息".encode(), addr)
#上面的while循环是死循环,所以这句不会执行。
# 所以无法访问 This code is unreachable.
sock.close()
【1】初版client端
from socket import *
import sys
#命令行输入服务器地址
if len(sys.argv) < 3:
print('''
argv is error !!
start as
python3 udp_client.py 127.0.0.1 8888
''')
raise
HOST = sys.argv[1]
PORT = int(sys.argv[2])
ADDR = (HOST,PORT)
#创建套接字
sockfd = socket(AF_INET,SOCK_DGRAM)
while True:
data = input("消息:")
if not data:
break
sockfd.sendto(data.encode(),ADDR)
data,addr = sockfd.recvfrom(1024)
print("从服务端收到:",data.decode())
sockfd.close()