最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 網(wǎng)絡(luò)編程之TCP客戶端/服務(wù)端功能示例【基于socket套接字】

 更新時間:2019年10月12日 10:11:24   作者:houyanhua1  
這篇文章主要介紹了Python 網(wǎng)絡(luò)編程之TCP客戶端/服務(wù)端功能,結(jié)合實例形式分析了Python使用socket套接字實現(xiàn)TCP協(xié)議下的客戶端與服務(wù)器端數(shù)據(jù)傳輸操作技巧,需要的朋友可以參考下

本文實例講述了Python 網(wǎng)絡(luò)編程之TCP客戶端/服務(wù)端功能。分享給大家供大家參考,具體如下:

demo.py(TCP客戶端):

import socket
def main():
  # 1. 創(chuàng)建tcp的套接字
  tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  # 2. 鏈接服務(wù)器
  # tcp_socket.connect(("192.168.33.11", 7890))
  server_ip = input("請輸入要鏈接的服務(wù)器的ip:")
  server_port = int(input("請輸入要鏈接的服務(wù)器的port:"))
  server_addr = (server_ip, server_port)
  tcp_socket.connect(server_addr)
  # 3. 發(fā)送數(shù)據(jù)/接收數(shù)據(jù)
  send_data = input("請輸入要發(fā)送的數(shù)據(jù):")
  tcp_socket.send(send_data.encode("utf-8"))
  # 接收數(shù)據(jù)。 會阻塞代碼,直到接收到數(shù)據(jù)
  recv_data = tcp_socket.recv(1024) # 1024表示本次接收的最大字節(jié)數(shù)。
  print(recv_data.decode("utf-8"))
  # 4. 關(guān)閉套接字
  tcp_socket.close()
if __name__ == "__main__":
  main()

demo.py(TCP服務(wù)端):

import socket
def main():
  # 1. 創(chuàng)建套接字 socket
  tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  # 設(shè)置當(dāng)服務(wù)器先close 即服務(wù)器端4次揮手之后資源能夠立即釋放,這樣就保證了,下次運(yùn)行程序時 可以立即綁定7890端口 (如果服務(wù)端先close,再啟動服務(wù)端就不會報端口被占用的錯誤。)
  tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  # 2. 綁定本機(jī)ip和端口號 bind
  tcp_server_socket.bind(("", 7890))
  # 3. 監(jiān)聽客戶端的鏈接請求 listen (由主動去鏈接服務(wù)器,變成被客戶端鏈接)
  tcp_server_socket.listen(128) # 128影響鏈接客戶端的數(shù)量(并發(fā)量)(和操作系統(tǒng)也有關(guān))
  # 4. 接受客戶端的鏈接 accept。 會阻塞代碼,直到有客戶端鏈接
  new_client_socket, client_addr = tcp_server_socket.accept()
  print(client_addr) # ("192.168.33.109",53766) 客戶端的ip和端口
  # 接收客戶端發(fā)送過來的數(shù)據(jù)。 會阻塞代碼,直到接收到數(shù)據(jù)
  recv_data = new_client_socket.recv(1024) # 1024表示本次接收的最大字節(jié)數(shù)。
  print(recv_data.decode("utf-8")) # 如果recv_data為空,表示客戶端斷開鏈接
  # 寫數(shù)據(jù)給客戶端
  new_client_socket.send("hahahghai-----ok-----".encode("utf-8"))
  # 關(guān)閉套接字
  new_client_socket.close() # 與客戶端通信的套接字
  tcp_server_socket.close() # 服務(wù)器套接字
if __name__ == "__main__":
  main()

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

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

相關(guān)文章

最新評論

绩溪县| 峨边| 大兴区| 靖西县| 石景山区| 德化县| 大埔县| 义马市| 龙门县| 禹城市| 玉门市| 大连市| 黄大仙区| 哈尔滨市| 建德市| 灵武市| 当涂县| 土默特左旗| 垣曲县| 新兴县| 丽水市| 昌乐县| 阿拉善盟| 雷波县| 宜宾市| 丹凤县| 礼泉县| 儋州市| 双鸭山市| 峨山| 威远县| 青铜峡市| 北安市| 娱乐| 贵德县| 渑池县| 比如县| 万山特区| 城口县| 阿坝县| 库尔勒市|