#__author: han-zhang
#date: 2018/12/23 10:21
#file: server.py
#ide: pycharm
import socket,threading
def c_thread(s_client,addr):
print(addr,'成功連線') #列印連線者位址資訊
while true:
data = s_client.recv(1024).decode('utf-8') #接收客戶端資料
print('收到',addr,'資訊為',data)
s_client.sendall(data.encode('utf-8'))
print('傳送成功')
if data == '再見':
s_client.close()
print('該子程序已關閉')
break
#例項化
s = socket.socket(socket.af_inet,socket.sock_stream)
#繫結埠
s.bind(('localhost',8000))
#監聽s.listen(10)
print('伺服器上線')
while true:
s_client,addr =s.accept() #會話阻塞
#建立子執行緒(執行與客戶端的讀寫互動)
sc_client = threading.thread(target=c_thread,args=(s_client,addr))
#啟動子執行緒
sc_client.start()
#__author: han-zhang
#date: 2018/12/23 10:38
#file: client.py
#ide: pycharm
import socket
#例項化客戶端物件
s = socket.socket(socket.af_inet,socket.sock_stream)
#連線s.connect(("localhost",8000))
while true:
words =input("客戶端說:").encode("utf-8")
#說話並序列化
s.sendall(words) #傳送資料
data =s.recv(1024).decode('utf-8')
print("接受到的資料為:",data)
if data == 'data':
s.close()
break
TCP多執行緒聊天
1 from socket import 2from threading import thread 3 sockets 4def main 5 建立server socket套接字物件 6 server socket socket af inet,sock stream 7 繫結埠 8 serve...
python多執行緒 python多執行緒
通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...
tcp 多執行緒聊天器
from socket import import threading from time import sleep def main sever 建立套接字 tcp socket socket af inet,sock stream 繫結本地資訊 tcp socket.bind 8081 監聽 t...