国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python socket實現(xiàn)的簡單通信功能示例

2020-02-15 22:46:36
字體:
供稿:網(wǎng)友

本文實例講述了Python socket實現(xiàn)的簡單通信功能。分享給大家供大家參考,具體如下:

套接字(socket)是計算機網(wǎng)絡數(shù)據(jù)結(jié)構(gòu),在任何類型的通信開始之前,網(wǎng)絡應用程序必須創(chuàng)建套接字,可以將其比作電話的插孔,沒有它將無法進行通信

常用的地址家族

AF_UNIX:基于文件,實現(xiàn)同一主機不同進程之間的通信 AF_INET:基于網(wǎng)絡,適用于IPv4 AF_INET6:基于網(wǎng)絡,使用于IPv6

常見的連接類型

SOCK_STREAM:即TCP/IP。面向連接的套接字,通信之前必須建立可靠的連接。面向連接的套接字提供序列化的、可靠的和不重復的數(shù)據(jù)交付,而沒有記錄邊界。 SOCK_DGRAM:即UDP。面向非連接的套接字,通信之前無需建立連接。在數(shù)據(jù)傳輸過程中無法保證數(shù)據(jù)的有序性、可靠性和重復性。然而數(shù)據(jù)報確實保存了記錄邊界,意味著數(shù)據(jù)是以整體發(fā)送的,而非事先切割多個片段。

socket通信

server端
import socketserver = socket.socket()  # 默認是AF_INET、SOCK_STREAMserver.bind(("localhost",6868))   # 將主機號與端口綁定到套接字server.listen()   # 設置并啟動TCP監(jiān)聽器while True:  conn,addr = server.accept()   # 被動接受TCP連接,一直等待連接到達  while True:    data = conn.recv(1024)   # 接收TCP消息,并制定最大長度    if not data:      print("連接已斷開")      break    conn.send(data.upper())  # 將接收到的數(shù)據(jù)轉(zhuǎn)為大寫在發(fā)回給它server.close()
client端
import socketclient = socket.socket()  # 默認是AF_INET、SOCK_STREAMclient.connect(("localhost",6868))while True:  s = input(">>")  client.send(s.encode("utf-8"))  data = client.recv(1024)client.close()

執(zhí)行結(jié)果:

socketserver模塊

使用socketserver實現(xiàn)多并發(fā)

import socketserverclass MyServer(socketserver.BaseRequestHandler):  def handle(self):    while True:      self.data = self.request.recv(1024)      if not self.data:        print("%s客戶端連接已斷開"%self.client_address)        break      self.request.sendall(self.data.upper())if __name__ == "__main__":  server = socketserver.ThreadingTCPServer(("localhost",6969),MyServer)  # 開啟一個線程  server.serve_forever() 

更多關于Python相關內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黑河市| 乌兰察布市| 石台县| 宁南县| 彭水| 湟中县| 正阳县| 喀什市| 瓦房店市| 凌云县| 大港区| 宝山区| 扶沟县| 神农架林区| 资阳市| 长武县| 会东县| 静安区| 昌黎县| 阳信县| 包头市| 鄂托克旗| 措勤县| 公安县| 屏边| 永定县| 应用必备| 晴隆县| 广平县| 微博| 敖汉旗| 含山县| 福清市| 闵行区| 肥乡县| 远安县| 揭东县| 罗田县| 同德县| 定兴县| 阿荣旗|