tcp程式設計是建立可靠連線,雙方是以流的形式傳送資料的。
在建立套接字時可以定義該套接字的型別,即定義socket物件時socket(af_inet,sock_stream),設定第二個引數為sock_stream,則表示使用tcp協議。
伺服器**如下:
from socket import *
srv = socket(af_inet,sock_stream)
#建立socket套接字時,sock_stream表示使用tcp協議
srv.bind(('127.0.0.1',8080))
srv.listen(5) #使用tcp協議通訊需要監聽才能鏈結
sock,addr = srv.accept() #連線上客戶端
data = sock.recv(1024)
print(data)
客戶端建立socket時也要設定第二個引數為soc_stream。
from socket import *
client = socket(af_inet,sock_stream)
# 建立tcp協議的套接字
client.connect(('127.0.0.1',8080))
# 與伺服器連線
client.send(b"hello!")
client.close()
# 斷開連線
udp是無連線的協議,只需要知道對方的ip和埠號,就可以進行通訊。它的優點是比tcp速度快,但是在資料傳輸上容易丟失資料。
在建立套接字時可以定義該套接字的型別,即定義socket物件時socket(af_inet,sock_dgram),設定第二個引數為sock_dgram,則表示使用udp協議。
伺服器**如下:
from socket import *
srv = socket(af_inet,sock_dgram)
# 設定為udp協議
srv.bind(('127.0.0.1',8081))
# udp協議不需要listen(),可以直接通訊
data,addr = srv.recvfrom(1024)
# 接收使用recvfrom()
print(data)
客戶端**:
from socket import *
client = socket(af_inet,sock_dgram)
# 也設定為udp協議
client.sendto(b'hello service!',('127.0.0.1',8081))
# 使用sendto()直接向埠發資料
client.close()
TCP和UDP的區別及socket網路程式設計步驟
tcp和udp的區別 1.連線 tcp是面向連線的傳輸層協議,即傳輸資料之前必須先建立好連線。udp無連線。2.服務物件 tcp是點對點的兩點間服務,即一條tcp連線只能有兩個端點 udp支援一對一,一對多,多對一,多對多的互動通訊。3.可靠性 tcp是可靠交付 無差錯,不丟失,不重複,按序到達。u...
Python中TCP和UDP用法
socket 簡稱 套接字 是程序間通訊的一種方式,它與其他程序間通訊的乙個主要不同是 它能實現不同主機間的程序間通訊,socket屬於全雙工。關於建立套接字的引數說明 socket.socket addressfamily,type address family 可以選擇 af inet 用於 i...
python網路程式設計 udp和tcp
udp伺服器import socket s socket.socket socket.af inet,socket.sock dgram s.bind 192.168.1.103 8888 while true data,addr s.recvfrom 1024 print s s str addr...