网络编程之群聊
                            
                            
                            
 群聊客戶端
import socket,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)
# 不停的收 不停的發def recv_msg(conn,address):??? 
while True:?????? 
global message
msg=conn.recv(1024)
Cond.acquire() 
message=str(address)+'>>'+msg.decode()???? 
print('收到:'+message) 
Cond.notify_all()? 
#喚醒其他給我發消息的線程?
?Cond.release()
def send_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))
import socket,threading
# 1.創建個客戶端
client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 2.建立連接
client.connect('192.168.0.1',8888)
# 收取其他用戶的數據
def recv_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'))
                            
                        
                        
                        總結
                            
                        - 上一篇: 【原创】 禁用ctfmon.exe 禁
 - 下一篇: linux使用命令有什么用,学linux