Python網路編程筆記一

來源:互聯網
上載者:User

標籤:udp   span   客戶   not   inpu   發送   cli   color   .so   

AF_INET:IPV4

AF_INET6:IPV6

通訊端類型:

SOCK_STREAM:TCP

SOCK_DGRAM:UDP

 

建立TCP通訊端,也可以不傳遞參數,預設建立TCP通訊端

tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

下面是基於python3實現的簡單的TCP服務端和用戶端

TCP使用send、recv發送和接收資料

服務端:

 1 import socket 2  3 HOST = "127.0.0.1" 4 PORT = 9999 5 BUFFSIZE = 1024 6 ADDR = (HOST, PORT) 7  8 tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 9 10 tcpSocket.bind(ADDR)11 12 tcpSocket.listen(5)13 14 while True:15     print("watting clien connection...")16     tcpClienSock, addr = tcpSocket.accept()17     print("connected from:", addr)18     while True:19         data = tcpClienSock.recv(BUFFSIZE)20         if not data:21             break22         print("i have received data: ", data)23         sendData = "hello, i have received your date: %s" % data24         tcpClienSock.send(bytes(sendData, encoding="utf-8"))25     tcpClienSock.close()26 tcpSocket.close()

用戶端:

 1 import socket 2  3 HOST = "127.0.0.1" 4 PORT = 9999 5 BUFFSIZE = 1024 6 ADDR = (HOST, PORT) 7  8 tcpClientSock = socket.socket() 9 r = tcpClientSock.connect(ADDR)10 print(r)11 12 while True:13     data = input(">>")14     if data == "q" or data == "quit":15         break16     tcpClientSock.send(bytes(data, encoding="utf-8"))17     recvData = tcpClientSock.recv(BUFFSIZE)18     if not recvData:19         break20     print(recvData)21 tcpClientSock.close()

 

接下來是簡單的UDP伺服器和用戶端實現

UDP使用sendto、recvfrom發送和接收資料

UDP伺服器:

 1 import socket 2  3 HOST = "127.0.0.1" 4 PORT = 9999 5 BUFFSIZE = 1024 6 ADDR = (HOST, PORT) 7 #UDP伺服器建立通訊端後,只需要綁定上IP和連接埠號碼,等待接收資料即可 8 #不需要listen和accept 9 udpSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)10 udpSocket.bind(ADDR)11 12 while True:13     print("watting message...")14     data, addr = udpSocket.recvfrom(BUFFSIZE) #會返回傳送者地址15     sendData = "hello, i have recv your date: %s" % data16     udpSocket.sendto(bytes(sendData, encoding="utf-8"), addr)17     print("receive message %s from %s" % (data, addr))18 udpSocket.close()

 

UDP用戶端:

 1 import socket 2  3 HOST = "127.0.0.1" # ‘localhost‘也可以 4 PORT = 9999 5 BUFFSIZE = 1024 6 ADDR = (HOST, PORT) 7 #建立通訊端即可發送資料,不需要connect串連 8 udpClientSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 9 10 while True:11     data = input(">>")12     if data == "q" or data == "quit":13         break14     udpClientSock.sendto(bytes(data, encoding="utf-8"), ADDR)15     recvData, addr = udpClientSock.recvfrom(BUFFSIZE)16     if not recvData:17         break18     print(recvData)19 udpClientSock.close()

 

Python網路編程筆記一

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.