python 網路聊天服務端

2021-08-28 04:04:01 字數 1867 閱讀 4932

」』

name:chenyang

email: [email protected]

date : 2018-09-11

class : aid

introduce: chatroom server

env: python3

」』 from socket import *

import os,sys

import time

def do_login(s,name,user,addr):

if (name in user) or name==』管理員』:

s.sendto(『該使用者已存在』.encode(),addr)

return

s.sendto(『ok』.encode(),addr)

msg=』\n歡迎%s進入聊天室』%name

for i in user:

s.sendto(msg.encode(),user[i])

user[name]=addr
def do_chat(s,user,name,text):

msg = 「\n%s 說:%s」%(name,text)

for i in user:

if i !=name:

s.sendto(msg.encode(),user[i])

def do_quit(s,user,name):

msg =』\n』+name+』退出聊天室』

for i in user:

if i ==name:

s.sendto(b』exit』,user[i])

else:

s.sendto(msg.encode(),user[i])

del user[name]

def do_parent(s):

# 儲存結構

user={}

while true:

c,addr=s.recvfrom(1024)

clist=c.decode().split(' ')

# 區分請求類型別

if clist[0]=='l':

do_login(s,clist[1],user,addr)

elif clist[0]=='c':

do_chat(s,user,clist[1],' '.join(clist[2:]))

elif clist[0]=="q":

do_quit(s,user,clist[1])

def do_child(s,addr):

while true:

msg=input(『管理員』)

msg=』c 管理員 『+msg

s.sendto(msg.encode(),addr)

def main():

#sever address

addr=(『0.0.0.0』,7898)

#建立套接字

s=socket(af_inet,sock_dgram)

s.setsockopt(sol_socket,so_reuseaddr,1)

s.bind(addr)

#建立乙個單獨的程序處理管理員喊話

pid = os.fork()

if pid <0:

sys.exit()

elif pid==0:

do_child(s,addr)

else:

do_parent(s)

ifname==」main「:

main()

python tcp服務端多人聊天

import socket defcreate socket 建立套接字 return socket.socket socket.af inet,socket.sock stream sock socket.socket socket.af inet,socket.sock stream retur...

python網路程式設計 socket 服務端 客戶端

udp 修改 2018 03 20 重置了布局,增加了udp socket又稱 套接字 應用程式通常通過 套接字 向網路發出請求或者應答網路請求。網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個socket。socket就像 線插口,只有 線插上了,才能通訊。python...

HTTP服務端JSON服務端

最後更新日期 2014 5 18 author kagula 內容簡介 cppcms是個開源web開發框架,通過它可以很容易實現http服務和json服務,這裡介紹cppcms開發環境的搭建。寫乙個cppcms測試程式,它建立http服務,向瀏覽器返回hello,world頁面。cppcms依賴的一...