基于python中的TCP及UDP(詳解)
更新時間:2017年11月06日 09:43:06 作者:黑桃不是吃的
下面小編就為大家?guī)硪黄趐ython中的TCP及UDP(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望對大家有所幫助
python中是通過套接字即socket來實現(xiàn)UDP及TCP通信的。有兩種套接字面向連接的及無連接的,也就是TCP套接字及UDP套接字。
TCP通信模型

創(chuàng)建TCP服務器
偽代碼:
ss = socket() # 創(chuàng)建服務器套接字 ss.bind() # 套接字與地址綁定 ss.listen() # 監(jiān)聽連接 inf_loop: # 服務器無限循環(huán) cs = ss.accept() # 接受客戶端連接 comm_loop: # 通信循環(huán) cs.recv()/cs.send() # 對話(接收/發(fā)送) cs.close() # 關閉客戶端套接字 ss.close() # 關閉服務器套接字#(可選)
TCP時間戳服務器:
import socket
from time import ctime
HOST = ''
PORT = 8099
BUFSIZE = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print("等待連接......")
tcpCliSock, addr = tcpSerSock.accept()
print("...接收到連接:", addr)
while True:
data = tcpSerSock.recv(BUFSIZE)
if not data:
break
tcpCliSock.send('[%s] %s' % (bytes(ctime(), 'utf-8'), data))
tcpCliSock.close()
tcpSerSock.close()
創(chuàng)建TCP客戶端:
偽代碼:
cs = socket() # 創(chuàng)建客戶端套接字 cs.connect() # 嘗試連接服務器 comm_loop: # 通信循環(huán) cs.send() / cs.recv() # 對話(發(fā)送/接收) cs.close() # 關閉客戶端套接字
TCP時間戳客戶端:
import socket
HOST = 'localhost'
PORT = 8099
BUFSIZE = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True:
data = input("> ")
if not data:
break
tcpCliSock.send(data)
data = tcpCliSock.recv(BUFSIZE)
if not data:
break
print(data)
tcpCliSock.close()
UDP通信模型

創(chuàng)建UDP服務器
偽代碼:
ss = socket() # 創(chuàng)建服務器套接字 ss.bind() # 綁定服務器套接字 inf_loop: # 服務器無限循環(huán) cs = ss.recvfrom()/ss.sendto() # 關閉(接收/發(fā)送) ss.close() # 關閉服務器套接字
UDP時間戳服務器:
import socket
from time import ctime
HOST = ''
PORT = 8099
BUFSIZE = 1024
ADDR = (HOST, PORT)
udpSerSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udpSerSock.bind(ADDR)
while True:
print("等待連接......")
data, addr = udpSerSock.recvfrom(BUFSIZE)
udpSerSock.sendto('[%s] %s' % (ctime(), data), addr)
print("...接收到連接:", addr)
udpSerSock.close()
創(chuàng)建UDP客戶端
偽代碼:
cs = socket() # 創(chuàng)建客戶端套接字 comm_loop: # 通信循環(huán) cs.sendto() / cs.recvfrom() # 對話(發(fā)送/接收) cs.close() # 關閉客戶端套接字
UDP時間戳客戶端:
import socket
HOST = 'localhost'
PORT = 8099
BUFSIZE = 1024
ADDR = (HOST, PORT)
udpCliSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udpCliSock.connect(ADDR)
while True:
data = input("> ")
if not data:
break
udpCliSock.sendto(data, ADDR)
data, ADDR = udpCliSock.recvfrom(BUFSIZE)
if not data:
break
print(data)
udpCliSock.close()
以上這篇基于python中的TCP及UDP(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Python實現(xiàn)基于TCP UDP協(xié)議的IPv4 IPv6模式客戶端和服務端功能示例
- Python網絡編程之TCP與UDP協(xié)議套接字用法示例
- Python網絡編程使用select實現(xiàn)socket全雙工異步通信功能示例
- python編程之requests在網絡請求中添加cookies參數(shù)方法詳解
- python網絡編程調用recv函數(shù)完整接收數(shù)據的三種方法
- Python網絡編程中urllib2模塊的用法總結
- python網絡編程之TCP通信實例和socketserver框架使用例子
- python網絡編程 使用UDP、TCP協(xié)議收發(fā)信息詳解
相關文章
python使用pygame模塊實現(xiàn)坦克大戰(zhàn)游戲
這篇文章主要為大家詳細介紹了python使用pygame模塊實現(xiàn)坦克大戰(zhàn)游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05

