參照著廖雪峰的python教程敲的**。
這個示例就是很簡單的伺服器端直接接收來自客戶端的資料,然後稍作處理返回給客戶端;客戶端給伺服器端傳送資料然後將接收到的返回資料列印。
udpserver.py:
# -*- coding: utf-8 -*-
import socket
#sock_dgram指定了這個socket的型別是udp
s = socket.socket(socket.af_inet, socket.sock_dgram)
#繫結埠
s.bind(('127.0.0.1', 9999))
#不需要呼叫listen()方法,而是直接接收來自任何客戶端的資料
print('bind udp on 9999....')
while true:
#接收資料
data, addr = s.recvfrom(1024) #recvfrom()方法返回資料和客戶端的位址與埠
print('received from %s:%s.' % addr)
if data == b'exit':
s.close() #如果不關掉socket,則下次執行程式會報埠已被占用
break
else:
s.sendto(b'hello, %s!' % data, addr)
udpclient.py:
# -*- coding: utf-8 -*-
import socket
s = socket.socket(socket.af_inet, socket.sock_dgram)
for data in [b'michael', b'tracy', b'sarah', b'exit']:
#傳送資料
s.sendto(data, ('127.0.0.1', 9999))
#接收資料
print(s.recv(1024).decode('utf-8'))
s.close()
因為udp是面向非連線的,所以比tcp程式設計少了「建立連線(客戶端發起伺服器端接受)和監聽埠(客戶端)」的步驟,並且接收資料和傳送資料所使用的資料也不一樣。
執行結果:
伺服器端:
客戶端:
Python UDP程式設計小示例
參照著廖雪峰的python教程敲的 這個示例就是很簡單的伺服器端直接接收來自客戶端的資料,然後稍作處理返回給客戶端 客戶端給伺服器端傳送資料然後將接收到的返回資料列印。udpserver.py coding utf 8 import socket sock dgram指定了這個socket的型別是u...
Python UDP程式設計
udp則是面向無連線的協議。資料報就是這種形式。比如 簡訊。只要資料傳送出去。無需去管對方是否接收到。使用udp協議時,不需要建立連線,只需要知道對方的ip位址和埠號,就可以直接發資料報。但是,能不能到達就不知道了。雖然用udp傳輸資料不可靠,但它的優點是和tcp比,速度快,對於不要求可靠到達的資料...
VC SOCKET 程式設計小示例
server.cpp 定義控制台應用程式的入口點。include stdafx.h include include define true 1 define false 0 define buf max lenth 1024 pragma comment lib,wsock32.lib int ma...