群聊客户端
"""群聊客戶端
Chat room
env:python3.5
socket fork 練習
"""from socket import *
import os,sys# 服務器地址
ADDR=('176.209.104.26',9898)# 發送消息
def send_msg(s,name):while True:try:text=input("發言:")except KeyboardInterrupt:text='quit'# 退出聊天室if text=='quit':msg='Q '+names.sendto(msg.encode(),ADDR)sys.exit('退出聊天室')msg="C %s %s"%(name,text)s.sendto(msg.encode(),ADDR)# 接收消息
def recv_msg(s):while True:data,addr=s.recvfrom(2048)# 服務端發送EXIT表示讓客戶端退出if data.decode()=='EXIT':sys.exit()print(data.decode())# 創建網絡連接
def main():s=socket(AF_INET,SOCK_DGRAM)while True:name=input('輸入姓名:')msg="L "+names.sendto(msg.encode(),ADDR)# 等待回應data,addr=s.recvfrom(1024)if data.decode()=='OK':print("您已進入聊天室")breakelse:print(data.decode())# 創建新的進程pid=os.fork()if pid<0:sys.exit("Error!")elif pid==0:send_msg(s,name)else:recv_msg(s)if __name__=='__main__':main()
總結
- 上一篇: USB设备仿真框架设计指南——10.用U
- 下一篇: 软件工程 网络工程,职业方向是怎样的?