python 之TCP和UDP程式設計簡單示例

2021-08-26 20:29:38 字數 1385 閱讀 8423

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...