Python UDP程式設計

2022-09-01 22:30:22 字數 1383 閱讀 8898

udp則是面向無連線的協議。

資料報就是這種形式。比如:簡訊。只要資料傳送出去。無需去管對方是否接收到。

使用udp協議時,不需要建立連線,只需要知道對方的ip位址和埠號,就可以直接發資料報。但是,能不能到達就不知道了。

雖然用udp傳輸資料不可靠,但它的優點是和tcp比,速度快,對於不要求可靠到達的資料,就可以使用udp協議。

我們來看看如何通過udp協議傳輸資料。和tcp類似,使用udp的通訊雙方也分為客戶端和伺服器。伺服器首先需要繫結埠:

伺服器:

# -*- coding: utf-8 -*-

import socket

'''使用udp協議時,不需要建立連線,只需要知道對方的ip位址和埠號,就可以直接發資料報。但是,能不能到達就不知道了。

雖然用udp傳輸資料不可靠,但它的優點是和tcp比,速度快,對於不要求可靠到達的資料,就可以使用udp協議。

我們來看看如何通過udp協議傳輸資料。和tcp類似,使用udp的通訊雙方也分為客戶端和伺服器。伺服器首先需要繫結埠

繫結埠和tcp一樣,但是不需要呼叫listen()方法,而是直接接收來自任何客戶端的資料

'''# ipv4 sock_dgram指定了這個socket的型別是udp

s = socket.socket(socket.af_inet, socket.sock_dgram)

s.bind(('127.0.0.1', 9999))

print 'bind udp on 9999...'

while true:

# 接收資料 自動阻塞 等待客戶端請求:

data, addr = s.recvfrom(1024)

print 'received from %s:%s.' % addr

s.sendto('hello, %s!' % data, addr)

#recvfrom()方法返回資料和客戶端的位址與埠,這樣,伺服器收到資料後,直接呼叫sendto()就可以把資料用udp發給客戶端。

客戶端:

# -*- coding: utf-8 -*-

import socket

'''客戶端使用udp時,首先仍然建立基於udp的socket,然後,不需要呼叫connect(),直接通過sendto()給伺服器發資料:

'''s = socket.socket(socket.af_inet, socket.sock_dgram)

for data in ['a', 'b', 'c']:

# 傳送資料:

s.sendto(data, ('127.0.0.1', 9999))

# 接收資料:

print s.recv(1024)

s.close()

Python UDP程式設計小示例

參照著廖雪峰的python教程敲的 這個示例就是很簡單的伺服器端直接接收來自客戶端的資料,然後稍作處理返回給客戶端 客戶端給伺服器端傳送資料然後將接收到的返回資料列印。udpserver.py coding utf 8 import socket sock dgram指定了這個socket的型別是u...

Python UDP程式設計小示例

參照著廖雪峰的python教程敲的 這個示例就是很簡單的伺服器端直接接收來自客戶端的資料,然後稍作處理返回給客戶端 客戶端給伺服器端傳送資料然後將接收到的返回資料列印。udpserver.py coding utf 8 import socket sock dgram指定了這個socket的型別是u...

Python udp 傳送郵件

郵箱傳送郵件 import smtplib from email.mime.text import mimetext class emailer def init self,user,password,host self.user user self.password password self.h...