tft每日頭條

 > 科技

 > python實現socket多客戶端連接

python實現socket多客戶端連接

科技 更新时间:2025-01-30 14:06:32
UDP通信步驟

引用UDP通信步驟一、UDP套接字服務端架構步驟

1. //初始化套接字環境WSAStartup2. //初始化地址和端口

3. //創建UDP套接字socket4. //綁定端口bind

5. //用recvfrom接收數據

6. //用sendto發送數據

7. //退出或者返回第5步繼續

二、UDP客戶端架構步驟

1. //初始化套接字環境WSAStartup2. //初始化地址和端口

3. //創建UDP套接字socket4. //用sendto發送數據

5. //用recvfrom接收數據

UDP Socket

引用UDP SocketUDP Socket網絡編程的API不多,socket()用于創建套接字,close()用于關閉套接字,sendto()用于發送數據,recvfrom()用于接收數據。

bind()顧名思義是綁定,TCP可以綁定,UDP也可以,bind用于UDP等于告訴内核:這個套接字跟網絡遠端的一個對子關聯上了。以後就可以直接調用send()往那個标識的主機上的進程發送UDP數據報了。而沒有bind之前,隻能通過sendto()接口(通過參數指定目的地)。UDP套接字recv()返回的是UDP數據報的數據部分(Payload),不包括UDP數據報首部,這是因為UDP首部的字段用于分發或者校驗,不需要透傳給應用程序。

python實現socket多客戶端連接(Python應用一使用socket創建UDP服務器端和客戶端)1

python_UDP一、python_UDP客戶端

#這是 UDP 客戶端 import socket HOST = '127.0.0.1' #本機測試 PORT = 1000 #端口号 BUFSIZ = 1024 #接收消息的緩沖大小 ADDR = (HOST, PORT) print(ADDR) UDPCliSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #創建客戶端套接字 while True: ##step.1## data = input('輸入發送内容> ') if not data: break UDPCliSock.sendto(bytes(data,'utf-8'), ADDR) #由客戶端向服務端發送【字節數組】 ##step.2## data, ADDR = UDPCliSock.recvfrom(BUFSIZ) #接收服務端回應的【字節數組】 if not data: #如果接收服務器信息失敗,或沒有消息回應 break print('服務器:', ADDR, str(data,'utf-8')) #打印回應消息 pass UDPCliSock.close() #關閉客戶端socket

python實現socket多客戶端連接(Python應用一使用socket創建UDP服務器端和客戶端)2

二、python_UDP服務端

#這是 UDP 服務端 import socket HOST_NAME = socket.gethostname() HOST = socket.gethostbyname(HOST_NAME) #主機号可為空白 HOST = "" PORT = 1000 ADDR = (HOST, PORT) #地址與端口 BUFSIZ = 1024 #接收數據緩沖大小 UDPSerSock=socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #創建udp服務器套接字 UDPSerSock.bind(ADDR) #套接字與地址綁定-服務端特有 print(ADDR) while True: #接收客戶端發來的字節數組-此處監聽 data, addr = UDPSerSock.recvfrom(BUFSIZ) #接收客戶端發來的字節數組,data.decode()='char',data.upper()='bytes' print("Data Receive from Client {}.\n {}".format(addr, data.decode())) #向客戶端發送字節數組 UDPSerSock.sendto(bytes("Data Sent from the Server. 'Server Success'!", "utf-8"), addr) #向客戶端發送字節數組, bytes("char", "utf-8") pass UDPSerSock.close() #關閉服務端socket

python實現socket多客戶端連接(Python應用一使用socket創建UDP服務器端和客戶端)3

問題解決

netstat -aon|findstr 1000 # 查找1000端口的進程PID tasklist /fi "pid eq 5672" # 尋找PID占用對應的軟件

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved