欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于python中的TCP及UDP(詳解)

 更新時(shí)間:2017年11月06日 09:43:06   作者:黑桃不是吃的  
下面小編就為大家?guī)硪黄趐ython中的TCP及UDP(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望對(duì)大家有所幫助

python中是通過套接字即socket來實(shí)現(xiàn)UDP及TCP通信的。有兩種套接字面向連接的及無連接的,也就是TCP套接字及UDP套接字。

TCP通信模型

創(chuàng)建TCP服務(wù)器

偽代碼:

ss = socket() # 創(chuàng)建服務(wù)器套接字
ss.bind() # 套接字與地址綁定
ss.listen() # 監(jiān)聽連接
inf_loop: # 服務(wù)器無限循環(huán)
 cs = ss.accept() # 接受客戶端連接
 comm_loop: # 通信循環(huán)
  cs.recv()/cs.send() # 對(duì)話(接收/發(fā)送)
 cs.close() # 關(guān)閉客戶端套接字
ss.close() # 關(guān)閉服務(wù)器套接字#(可選)

TCP時(shí)間戳服務(wù)器:

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() # 嘗試連接服務(wù)器
comm_loop: # 通信循環(huán)
 cs.send() / cs.recv() # 對(duì)話(發(fā)送/接收)
cs.close() # 關(guān)閉客戶端套接字 

TCP時(shí)間戳客戶端:

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服務(wù)器

偽代碼:

ss = socket() # 創(chuàng)建服務(wù)器套接字
ss.bind() # 綁定服務(wù)器套接字
inf_loop: # 服務(wù)器無限循環(huán)
 cs = ss.recvfrom()/ss.sendto() # 關(guān)閉(接收/發(fā)送)
ss.close() # 關(guān)閉服務(wù)器套接字

UDP時(shí)間戳服務(wù)器:

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() # 對(duì)話(發(fā)送/接收)
cs.close() # 關(guān)閉客戶端套接字

UDP時(shí)間戳客戶端:

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(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python獲取Cookie的方法總結(jié)

    Python獲取Cookie的方法總結(jié)

    在Web開發(fā)中,Cookie是一種常用的技術(shù),用于在Web服務(wù)器和瀏覽器之間存儲(chǔ)和傳輸數(shù)據(jù),本文將詳細(xì)介紹Python中獲取Cookie的方法,包括HTTP請(qǐng)求、Web框架和Cookie管理庫的用法,同時(shí)提供示例代碼來演示這些方法的實(shí)際應(yīng)用,需要的朋友可以參考下
    2023-11-11
  • python中pandas.DataFrame對(duì)行與列求和及添加新行與列示例

    python中pandas.DataFrame對(duì)行與列求和及添加新行與列示例

    pandas是python環(huán)境下最有名的數(shù)據(jù)統(tǒng)計(jì)包,而DataFrame翻譯為數(shù)據(jù)框,是一種數(shù)據(jù)組織方式,這篇文章主要給大家介紹了python中pandas.DataFrame對(duì)行與列求和及添加新行與列的方法,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法示例

    Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法示例

    今天小編就為大家分享一篇Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 利用PyQT5日期控件制作一個(gè)小日歷

    利用PyQT5日期控件制作一個(gè)小日歷

    這篇文章主要介紹了利用PyQT5的日期控件制作一個(gè)小日歷,因?yàn)閜yqt5已經(jīng)自帶了相關(guān)的日期控件,只需要明白如何調(diào)用再加上比較個(gè)性化的功能,這個(gè)日歷的小控件就制作完成了。需要的可以參考一下
    2022-01-01
  • 深入理解python虛擬機(jī)之多繼承與?mro

    深入理解python虛擬機(jī)之多繼承與?mro

    在本篇文章當(dāng)中將主要給大家介紹?python?當(dāng)中的多繼承和mro,通過介紹在多繼承當(dāng)中存在的問題就能夠理解在cpython當(dāng)中引入c3算法的原因了,從而能夠幫助大家更好的了理解mro,需要的朋友可以參考下
    2023-05-05
  • python讀取與處理netcdf數(shù)據(jù)方式

    python讀取與處理netcdf數(shù)據(jù)方式

    今天小編就為大家分享一篇python讀取與處理netcdf數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Tensorflow?2.4加載處理圖片的三種方式詳解

    Tensorflow?2.4加載處理圖片的三種方式詳解

    這篇文章主要為大家介紹了Tensorflow?2.4加載處理圖片的三種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • python中字典增加和刪除使用方法

    python中字典增加和刪除使用方法

    這篇文章主要介紹了python中字典增加和刪除使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 對(duì)json字符串與python字符串的不同之處詳解

    對(duì)json字符串與python字符串的不同之處詳解

    今天小編就為大家分享一篇對(duì)json字符串與python字符串的不同之處詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • PyQt5實(shí)現(xiàn)簡(jiǎn)易電子詞典

    PyQt5實(shí)現(xiàn)簡(jiǎn)易電子詞典

    這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)簡(jiǎn)易電子詞典,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評(píng)論