Python網(wǎng)絡(luò)編程之TCP與UDP協(xié)議套接字用法示例
本文實(shí)例講述了Python網(wǎng)絡(luò)編程之TCP與UDP協(xié)議套接字用法。分享給大家供大家參考,具體如下:
TCP協(xié)議
服務(wù)器端:
#!/usr/bin/env python
from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM) ##創(chuàng)建服務(wù)器TCP套接字
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print 'waiting for connection...'
tcpCliSock, addr = tcpSerSock.accept() ##等待客戶端連接
print '...connected from:', addr
while True:
data = tcpCliSock.recv(BUFSIZ) ##監(jiān)聽(tīng)客戶端是否發(fā)送消息
if not data:
break
tcpCliSock.send('[%s] %s' % (
ctime(), data))
tcpCliSock.close()
tcpSerSock.close()
客戶端:
#!/usr/bin/env python
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM) ##創(chuàng)建客戶端TCP套接字
tcpCliSock.connect(ADDR) ##連接服務(wù)器
while True:
data = raw_input('> ')
if not data:
break
tcpCliSock.send(data)
data = tcpCliSock.recv(BUFSIZ) ##監(jiān)聽(tīng)客戶端發(fā)送消息
if not data:
break
print data
tcpCliSock.close()
UDP協(xié)議
服務(wù)器端:
#!/usr/bin/env python
from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpSerSock = socket(AF_INET, SOCK_DGRAM)
udpSerSock.bind(ADDR)
while True:
print 'waiting for message...'
data, addr = udpSerSock.recvfrom(BUFSIZ)##監(jiān)聽(tīng)并接受客戶端發(fā)的消息
udpSerSock.sendto('[%s] %s' % ( ##給消息加上時(shí)間戳并返回給客戶端
ctime(), data), addr)
print '...received from and returned to:', addr
udpSerSock.close()
客戶端:
#!/usr/bin/env python
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpCliSock = socket(AF_INET, SOCK_DGRAM)
while True:
data = raw_input('> ')
if not data:
break
udpCliSock.sendto(data, ADDR) ##給服務(wù)器發(fā)送數(shù)據(jù)
data, ADDR = udpCliSock.recvfrom(BUFSIZ) ##客戶端接受帶時(shí)間戳的數(shù)據(jù)
if not data:
break
print data
udpCliSock.close()
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- 對(duì)python中基于tcp協(xié)議的通信(數(shù)據(jù)傳輸)實(shí)例講解
- Python Scapy隨心所欲研究TCP協(xié)議棧
- Python實(shí)現(xiàn)基于TCP UDP協(xié)議的IPv4 IPv6模式客戶端和服務(wù)端功能示例
- Python+Socket實(shí)現(xiàn)基于TCP協(xié)議的客戶與服務(wù)端中文自動(dòng)回復(fù)聊天功能示例
- Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例
- Python使用?TCP協(xié)議實(shí)現(xiàn)智能聊天機(jī)器人功能
- Python網(wǎng)絡(luò)編程之Python編寫(xiě)TCP協(xié)議程序的步驟
Python實(shí)現(xiàn)求一個(gè)集合所有子集的示例
Python使用Pandas庫(kù)實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的讀寫(xiě)
使用Python實(shí)現(xiàn)控制攝像頭的方法詳解
sublime3之內(nèi)網(wǎng)安裝python插件Anaconda的流程
python交互模式基礎(chǔ)知識(shí)點(diǎn)學(xué)習(xí)

