python3實現socket客戶端通訊demo

2021-09-02 15:02:33 字數 2402 閱讀 6953

1.建立server.py檔案作為服務端,**如下:

#服務端

import socketserver

client_list=

class tcphandler(socketserver.baserequesthandler):

# 所有請求的互動都是在handle裡執行的,

def handle(self):

while true:

try:

# 每乙個請求都會例項化tcphandler(socketserver.baserequesthandler):

self.data = self.request.recv(80000).strip()

client_ip=self.client_address[0]

client_num=self.client_address[1]

if client_num not in client_list:

print("來訪客戶端ip:{} 編號:{}".format(client_ip,client_num))

print("客戶端資料:",self.data.decode())

#傳送回客戶端的資料

self.request.sendall(self.data)

print(client_list)

except connectionreseterror as e:

print("----斷開的客戶端------")

print("客戶端:{} 已經斷開".format(client_num))

client_list.remove(client_num)

break

if __name__ == "__main__":

host, port = "127.0.0.1", 9999

server = socketserver.threadingtcpserver((host, port), tcphandler) #執行緒

server.serve_forever()

2.建立client.py檔案作為客戶端,**如下:

#客戶端

import socket

class client():

def send_info(self):

try:

client = socket.socket() #定義協議型別,相當於生命socket型別,同時生成socket連線物件

client.connect(('127.0.0.1',9999))

while true:

msg = input(">>>").strip()

if len(msg) ==0:continue

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

data = client.recv(1024)#這裡是位元組1k

print("recv:>",data.decode())

client.close()

except connectionerror as ex:

print(ex)

if __name__ == "__main__":

client=client()

client.send_info()

3.測試。啟動服務端,執行server.py檔案,如下圖:

啟動服務之後,我們可以將client.py多複製幾份更改為不同的名字,模擬多個客戶端。如我複製了兩份,分別為client.py和client2.py,然後執行這個兩個客戶端檔案。如下圖:

啟動客戶端之後,可以在客戶端輸入文字內容傳送到服務端,如下圖,我在client輸入 hello

切換到server端面板,如圖:

可以看到,它已經收到了客戶端1所傳送的資料,並將它返回了回去,接著在client2中也輸入文字內容,如圖:

再次切換到server端面板,如圖:

python3 多程序實現socket通訊

coding utf 8 import osfrom socket import from multiprocessing import process deftalk conn while 1 迴圈通訊 try from client msg conn.recv 1024 ifnot from c...

python3實現CryptoJS AES加密演算法

from crypto.cipher import aes from binascii import b2a hex,a2b hex import base64 class aescrypt def init self,key self.key key.encode utf8 self.mode a...

Python3 實現選擇排序

選擇排序 selection sort 原理很簡單,就是依次在未排序資料段中選擇出乙個最小的數,然後將其排列在已排序資料段末端,直到整個資料段排序完成演算法結束。程式如下,第乙個迴圈依次縮小未排序資料段的長度,並且每次將最小值暫定為未排序中第一位索引。第二個迴圈依次將該最小值與未排序資料段作比較,選...