標籤:返回 使用 rom code connect gpo odi end --
前言:網路編程主要分成udp和tcp兩種,udp不需要建立串連,所以傳輸速度快,但不穩健,tcp需要建立串連,所以傳輸速度慢,但穩健,現在,大多數應用都採用tcp來進行通訊。
一、UDP
1.send端
1)導包 from socket import *
2)建立udpSocket對象,udpSocket = socket(AF_INET,SOCK_DGREAM)
3)調用對象發送訊息,udpSocket.sendto("hello,udp,我來了".encode("utf-8"),("你要發送的那台機器的ip地址",連接埠))
4)關閉udpSocket對象,udpSocket.close()
2.recive端
1)導包 from socket import *
2)建立udpSocket對象,udpSocket = socket(AF_INET,SOCK_DGREAM)
3)綁定ip和連接埠,udpSocket.bind(("你要接收的那台機器的ip地址",連接埠))
4)接收資料,udpSocket.recvfrom(1024)
5)關閉udpSocket對象,udpSocket.close()
1 from socket import *2 3 udpSocket = socket(AF_INET,SOCK_DGRAM)4 #使用udp發送的資料,在每一次的都需要寫上接收方的ip和port,可以告訴接收方用什麼方式編碼5 udpSocket.sendto("haha\n".encode("gb2312"),("172.25.6.222",8080))6 7 udpSocket.sendto("你好啊".encode("utf-8"),("202.193.52.52",1880))send端
1 #coding = utf-82 3 from socket import *4 udpSocket = socket(AF_INET,SOCK_DGRAM)5 6 udpSocket.bind((‘‘,8080))7 recvData = udpSocket.recvfrom(1024)8 print(recvData[0].decode("utf-8"))recive端
二、TCP
1.server端
1)導包 from socket import *
2)建立tcpSocket對象,tcpSocket = socket(AF_INET,SOCK_STREAM)
3)綁定ip和連接埠,tcpSocket.bind("server端的ip",連接埠)
4)監聽,tcpSocket.listen(5)
5)接收client端,clientSocket,clientInfo = tcpSocket.accept()
6)將client端的請求資訊進行列印,recvData = clientSocket.recv(1024),print(recvData)
2.client端
1)導包 from socket import *
2)建立tcpSocket對象,tcpSocket = socket(AF_INET,SOCK_STREAM)
3)串連server端,tcpSocket.connect("server的ip地址",連接埠)
4)向server端發送資料,clientSocket.send("hello,tcp,我來了".encode("utf-8"))
5)將server端返回的資訊進行列印,recvData = clientSocket.recv(1024),print(recvData)
6)關閉用戶端,clientSocket.close()
1 from socket import * 2 3 serverSocket = socket(AF_INET, SOCK_STREAM) 4 5 serverSocket.bind(("", 8899)) 6 7 serverSocket.listen(5) 8 9 print("-----1-----")10 clientSocket,clientInfo = serverSocket.accept()11 12 print("-----2-----")13 #clientSocket 表示這個新的用戶端14 #clientInfo 表示這個新的用戶端的ip以及port15 16 recvData = clientSocket.recv(1024)17 18 print("-----3-----")19 print("%s:%s"%(str(clientInfo), recvData))20 21 clientSocket.close()22 serverSocket.close()server端
1 from socket import * 2 3 clientSocket = socket(AF_INET, SOCK_STREAM) 4 clientSocket.connect(("192.168.119.153", 8989)) 5 6 #注意: 7 # 1. tcp用戶端已經連結好了伺服器,所以在以後的資料發送中,不需要填寫對方的iph和port----->打電話 8 # 2. udp在發送資料的時候,因為沒有之前的連結,所依需要 在每次的發送中 都要填寫接收方的ip和port----->寫信 9 clientSocket.send("haha".encode("gb2312"))10 11 recvData = clientSocket.recv(1024)12 13 print("recvData:%s"%recvData)14 15 clientSocket.close()client端
python網路編程