網路程式設計之群聊

2021-08-20 10:38:36 字數 2125 閱讀 9410

群聊客戶端

importsocket,threading

# 建立個服務端

server=socket.socket(socket.af_inet,socket.sock_stream)

# 繫結伺服器的ip和埠

server.bind((

'192.168.0.1',

8000))

# 設定最大掛起連線數5

server.listen(

5)print(

'服務端 啟動等待客戶端連線...')

# 建立乙個中間轉換資料的變數

message=

""

# 建立一把鎖

lock=threading.lock()

cond=threading.condition(

lock=lock)

# 不停的收 不停的發

defrecv_msg(conn,address):   

while true:      

globalmessage

msg=conn.recv(

1024)

cond.acquire()

message=

str(address)+

'>>'+msg.decode()    

print(

'收到:'+message)

cond.notify_all() 

#喚醒其他給我發訊息的執行緒

cond.release()

defsend_msg(conn,

address):

while true:

cond.acquire()

cond.wait()

cond.release()

conn.sendall(message.encode(

'utf-8'))    

print(

'傳送'+message)

# 為每乙個連線者提供收與發的執行緒

不停的收  不停的發

while true:

conn,address=server.accept()

threading._start_new_thread(recv_msg,(conn,address))

threading._start_new_thread(send_msg,(conn,address))

importsocket,threading

# 1.建立個客戶端

client=socket.socket(socket.af_inet,socket.sock_stream)

# 2.建立連線

client.connect('192.168.0.1',8888)

# 收取其他使用者的資料

defrecv_msg():

while true:

msg=client.recv(1024)

print('收到',msg.decode())

threading._start_new_thread(recv_msg,())

# 不停的發

while true:

msg=input('請輸入資料訊息:')

client.send(msg.encode('utf-8'))

網路群聊系統

1 網路群聊系統簡介 簡單來說,這個聊天系統是參照 linux高效能伺服器程式設計 中有個簡單的聊天系統實現的群聊功能。每個客戶端負責傳送和接收資料,還負責資料的序列化和反序列化。2 網路群聊系統背景知識 1 在linux作業系統下實現,本人用的是centos 6.5 2 熟悉linux的開發環境,...

網路群聊系統

一 編寫視窗類window,用ncurses庫.window介面 1.create newwin int,int,int,int 建立新視窗並加邊框 2.create output 建立輸出聊天內容的視窗 3.create input 建立輸入視窗 4.create header 建立標題視窗,顯示...

網路程式設計 之 網路基礎

網路程式設計 1.乙個程式如何在網路上找到另乙個程式?首先,程式必須要啟動,其次,必須有這台機器位址,我們都知道我們人的位址大概就是國家 省 市 區 街道 樓 門牌號這樣子。那麼每一台聯網的機器在網路上也有自己的位址,他們位址是怎麼表示的呢?就是使用一串數字來表示的,例如 100.4.5.6什麼是i...