python網路程式設計TCP服務多客戶端的服務端開發

2022-06-19 15:51:09 字數 2594 閱讀 8971

#

服務多客戶端tcp服務端開發 2 #方法說明

3 """

4 bind(host,port)表示繫結埠號,host是ip位址,ip位址一般不進

行繫結,表示本機的任何乙個ip位址都行,port是埠號

5 listen(backlog)表示設定監聽,backlog引數表示最大等待連線的》 個數

6 accept()表示等待接受客戶端的連線請求

7 """ 8 import

socket

9 import

threading

10 #

處理客戶端請求

11 def

client_socket(ip_port,new_client):#子執行緒來完成

12 print("

客戶端的ip和埠號為:

",ip_port)

13 while

true:

14 data = new_client.recv(1024)

15 if

data:

16 #

接受客戶端的收據

17 #

對二進位制資料進行解碼

18 recv_data = data.decode("

utf-8")

19 print("

接收客戶端的資料為:

",recv_data)

20 #

傳送資料到客戶端

21 client_data = "

最偉大"

22 send_data = client_data.encode("

utf-8")

23new_client.send(send_data)

24 else

: 25 print("

客戶端下線了:

",ip_port)

26 break

27 #

關閉服務與客戶端套接字,表示終止服務端與客戶端通訊

28new_client.close()

29 30 if

__name__ == "

__main__":

31 #

建立服務端套接字物件

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

33 #

繫結埠號

34 #

ip位址一般不寫死,只要是本機電腦的任何乙個ip位址都行

35 tcp_server_socket.bind(("",8080))

36 #

設定埠號復用:服務端程式退出後埠立即釋放

37 #

1.socket.sol_socket:表示當前套接字

38 #

2.socket.so_reuseaddr:表示復用埠號的選項

39 #

3.true:確定復用

40tcp_server_socket.setsockopt(socket.sol_socket,socket.so_reuseaddr,true)

41 #

設定監聽

42 tcp_server_socket.listen(128)

43 #

等待客戶端的連線請求

44 #

注意點:每次當客戶端和服務端建立連線成功會返回乙個新的》 套接字new_client

45 #

tcp_server_socket套接字只負責接受連線請求,收發訊息只》 用返回的新套接字

46 while

true:

47 new_client,ip_port =tcp_server_socket.accept()

48 #

客戶端和服務端建立連線成功,建立子執行緒,讓子執行緒專

門負責接受客戶端訊息

49 sub_thread = threading.thread(target = client_socket,args =(ip_port,new_client))

50 #

設定守護主線程,主線程退出子執行緒直接銷毀

51sub_thread.setdaemon(true)

52 #

關閉服務端套接字

53sub_thread.start()

54 #

服務端需要一直執行

55 #

tcp_server_socket.close()

實現多工可以用程序或者執行緒來來完成

但開闢執行緒對資源的消耗比執行緒大,所以我們選擇建立子執行緒來完成伺服器服務於多客戶端

python網路程式設計 TCP網路程式設計

tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...

python網路程式設計 TCP

一 網路通訊模式 對於網路通訊,現在遵循的是tcp ip協議組。而現在設計的通訊模式中,主要使用的是客戶端 伺服器程式設計,所謂的客戶端就是我們使用者所用的軟體,而服務端則是程式開發人員根據客戶端的需要設計的服務模式,為了是滿足客戶端的要求,實現和客戶端進行正常通訊。二 套接字 通訊的端點 對於tc...

python筆記 網路程式設計 TCP程式設計(伺服器)

目錄 一 建立伺服器響應 1.1步驟 1.2完整 1.3執行 伺服器程序首先要繫結乙個埠並監聽來自其他客戶端的連線。如果某個客戶端連線過來了,伺服器就與該客戶端建立socket連線,隨後的通訊就靠這個socket連線了。所以,伺服器會開啟固定埠 比如80 監聽,每來乙個客戶端連線,就建立該socke...