群聊客戶端
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...