日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

socket发信息

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 socket发信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

例子
以下是使用TCP / IP協議的四個最小示例程序:一臺服務器,該服務器回顯它收到的所有數據(僅為一個客戶端提供服務),以及一個使用它的客戶端。注意,服務器必須執行序列socket(), bind(),listen(),accept()(可能重復accept(),以服務一個以上的客戶端),而一個客戶端只需要在序列socket(),connect()。另請注意,服務器不在sendall()/recv()偵聽的套接字上,而是/返回的新套接字 accept()。

前兩個示例僅支持IPv4。

# 服務端 import socketHOST = '' # 符號名稱含義所有可用接口 PORT = 50007 # 任意非特權端口 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:s.bind((HOST, PORT))s.listen(1)conn, addr = s.accept()with conn:print('Connected by', addr)while True:data = conn.recv(1024)if not data: breakconn.sendall(data) # 客戶端 import socketHOST = 'daring.cwi.nl' # 遠程主機 可改為服務器ip地址 PORT = 50007 # 與服務器使用的端口相同 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:s.connect((HOST, PORT))s.sendall(b'Hello, world')data = s.recv(1024) print('Received', repr(data))

接下來的兩個示例與以上兩個示例相同,但同時支持IPv4和IPv6。服務器端將監聽第一個可用的地址族(它應該監聽兩個)。在大多數支持IPv6的系統上,IPv6優先,并且服務器可能不接受IPv4流量。客戶端將嘗試連接到由于名稱解析而返回的所有地址,并將流量發送到成功連接的第一個地址。

# 服務端 import socket import sysHOST = None # 符號名稱含義所有可用接口 PORT = 50007 # 任意非特權端口 s = None for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC,socket.SOCK_STREAM, 0, socket.AI_PASSIVE):af, socktype, proto, canonname, sa = restry:s = socket.socket(af, socktype, proto)except OSError as msg:s = Nonecontinuetry:s.bind(sa)s.listen(1)except OSError as msg:s.close()s = Nonecontinuebreak if s is None:print('could not open socket')sys.exit(1) conn, addr = s.accept() with conn:print('Connected by', addr)while True:data = conn.recv(1024)if not data: breakconn.send(data) # 客戶端 import socket import sysHOST = 'daring.cwi.nl' # 遠程主機 PORT = 50007 # 與服務器使用的端口相同 s = None for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC, socket.SOCK_STREAM):af, socktype, proto, canonname, sa = restry:s = socket.socket(af, socktype, proto)except OSError as msg:s = Nonecontinuetry:s.connect(sa)except OSError as msg:s.close()s = Nonecontinuebreak if s is None:print('could not open socket')sys.exit(1) with s:s.sendall(b'Hello, world')data = s.recv(1024) print('Received', repr(data))

其他參考 官網python3.7.9文檔

總結

以上是生活随笔為你收集整理的socket发信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。