Python網(wǎng)絡編程之TCP與UDP協(xié)議套接字用法示例
本文實例講述了Python網(wǎng)絡編程之TCP與UDP協(xié)議套接字用法。分享給大家供大家參考,具體如下:
TCP協(xié)議
服務器端:
#!/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)建服務器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)聽客戶端是否發(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) ##連接服務器 while True: data = raw_input('> ') if not data: break tcpCliSock.send(data) data = tcpCliSock.recv(BUFSIZ) ##監(jiān)聽客戶端發(fā)送消息 if not data: break print data tcpCliSock.close()
UDP協(xié)議
服務器端:
#!/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)聽并接受客戶端發(fā)的消息 udpSerSock.sendto('[%s] %s' % ( ##給消息加上時間戳并返回給客戶端 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) ##給服務器發(fā)送數(shù)據(jù) data, ADDR = udpCliSock.recvfrom(BUFSIZ) ##客戶端接受帶時間戳的數(shù)據(jù) if not data: break print data udpCliSock.close()
更多關于Python相關內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
- 對python中基于tcp協(xié)議的通信(數(shù)據(jù)傳輸)實例講解
- Python Scapy隨心所欲研究TCP協(xié)議棧
- Python實現(xiàn)基于TCP UDP協(xié)議的IPv4 IPv6模式客戶端和服務端功能示例
- Python+Socket實現(xiàn)基于TCP協(xié)議的客戶與服務端中文自動回復聊天功能示例
- Python實現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例
- Python使用?TCP協(xié)議實現(xiàn)智能聊天機器人功能
- Python網(wǎng)絡編程之Python編寫TCP協(xié)議程序的步驟
相關文章
python實現(xiàn)對指定字符串補足固定長度倍數(shù)截斷輸出的方法
今天小編就為大家分享一篇python實現(xiàn)對指定字符串補足固定長度倍數(shù)截斷輸出的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python使用Pandas庫實現(xiàn)MySQL數(shù)據(jù)庫的讀寫
這篇文章主要介紹了Python使用Pandas庫實現(xiàn)MySQL數(shù)據(jù)庫的讀寫 ,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07sublime3之內(nèi)網(wǎng)安裝python插件Anaconda的流程
這篇文章主要介紹了sublime3之內(nèi)網(wǎng)安裝python插件Anaconda的流程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11