最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python里disconnect UDP套接字的方法

 更新時(shí)間:2015年04月23日 09:07:59   投稿:junjie  
這篇文章主要介紹了Python里disconnect UDP套接字的方法,本文使用的是ctypes繞過(guò)的方法,需要的朋友可以參考下

UDP 套接字是可以使用 connect 系統(tǒng)調(diào)用連接到指定的地址的。從此以后,這個(gè)套接字只會(huì)接收來(lái)自這個(gè)地址的數(shù)據(jù),而且可以使用 send 系統(tǒng)調(diào)用直接發(fā)數(shù)據(jù)而不用指定地址。可以再次調(diào)用 connect 來(lái)連接到別的地方。但是在 Python 里,一旦調(diào)用 connect 之后,就再也回不到最初的能夠接收從任意地址來(lái)的數(shù)據(jù)的狀態(tài)了!

這是 Python 的 API 限制,沒(méi)辦法給 connect 方法傳遞到 AF_UNSPEC 地址簇(在 C 代碼里寫(xiě)死了的)。C 里邊就可以做到的(代碼來(lái)自這里):

復(fù)制代碼 代碼如下:

int disconnect_udp_sock(int fd) {
 struct sockaddr_in sin;       
 
 memset((char *)&sin, 0, sizeof(sin));
 sin.sin_family = AF_UNSPEC;
 return (connect(fd, (struct sockaddr *)&sin, sizeof(sin)));
}

不過(guò)既然是 Python 的限制,拿 ctypes 就可以繞過(guò)了嘛,有些麻煩就是了:

復(fù)制代碼 代碼如下:

from ctypes import CDLL, create_string_buffer
 
def disconnect(sock):
  libc = CDLL("libc.so.6")
  buf = create_string_buffer(16) # sizeof struct sockaddr_in
  libc.connect(sock.fileno(), buf, 16)

AF_UNSPEC 的值是 0,所以把一個(gè)和 struct sockaddr_in 一樣長(zhǎng)的全零緩沖區(qū)傳給 connect 就可以了 :-)

相關(guān)文章

  • 詳解Python中的時(shí)間格式的讀取與轉(zhuǎn)換(time模塊)

    詳解Python中的時(shí)間格式的讀取與轉(zhuǎn)換(time模塊)

    這篇文章主要介紹了Python中的時(shí)間格式的讀取與轉(zhuǎn)換(time模塊),文末給大家介紹了python的時(shí)間獲取與轉(zhuǎn)化:time模塊和datetime模塊的相關(guān)知識(shí),需要的朋友可以參考下
    2023-05-05
  • python中邏輯與或(and、or)和按位與或異或(&、|、^)區(qū)別

    python中邏輯與或(and、or)和按位與或異或(&、|、^)區(qū)別

    這篇文章主要介紹了python中邏輯與或(and、or)和按位與或異或(&、|、^)區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python根據(jù)站點(diǎn)列表繪制站坐標(biāo)全球分布圖的示例

    Python根據(jù)站點(diǎn)列表繪制站坐標(biāo)全球分布圖的示例

    這篇文章主要介紹了Python根據(jù)站點(diǎn)列表繪制站坐標(biāo)全球分布圖,輸入站點(diǎn)列表文件、snx全球站點(diǎn)坐標(biāo)文件,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • python中時(shí)間模塊的基本使用教程

    python中時(shí)間模塊的基本使用教程

    這篇文章主要給大家介紹了關(guān)于python中時(shí)間模塊的基本使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 使用pytorch實(shí)現(xiàn)論文中的unet網(wǎng)絡(luò)

    使用pytorch實(shí)現(xiàn)論文中的unet網(wǎng)絡(luò)

    這篇文章主要介紹了使用pytorch實(shí)現(xiàn)論文中的unet網(wǎng)絡(luò),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python實(shí)現(xiàn)網(wǎng)絡(luò)端口轉(zhuǎn)發(fā)和重定向的方法

    Python實(shí)現(xiàn)網(wǎng)絡(luò)端口轉(zhuǎn)發(fā)和重定向的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)網(wǎng)絡(luò)端口轉(zhuǎn)發(fā)和重定向的方法,結(jié)合實(shí)例形式分析了Python基于threading和socket模塊實(shí)現(xiàn)端口轉(zhuǎn)發(fā)與重定向的具體操作技巧,需要的朋友可以參考下
    2016-09-09
  • 快速進(jìn)修Python指南之自定義模塊常用模塊

    快速進(jìn)修Python指南之自定義模塊常用模塊

    這篇文章主要為大家介紹了Java開(kāi)發(fā)者如何快速進(jìn)修Python指南之自定義模塊常用模塊示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Python?sns.distplot()方法的使用方法

    Python?sns.distplot()方法的使用方法

    機(jī)器學(xué)習(xí)中經(jīng)常會(huì)用到圖形進(jìn)行可視化,如在網(wǎng)格搜索(GridSearch)后對(duì)特征的重要性進(jìn)行排序時(shí),用到sns.barplot()函數(shù)按照重要程度輸出特征,這篇文章主要給大家介紹了關(guān)于Python?sns.distplot()方法的使用方法,需要的朋友可以參考下
    2022-03-03
  • 基于Python實(shí)現(xiàn)一鍵批量查詢郵編

    基于Python實(shí)現(xiàn)一鍵批量查詢郵編

    這篇文章主要為大家詳細(xì)介紹了如何利用Python快速實(shí)現(xiàn)查詢excel表格里所有郵編對(duì)應(yīng)的地址信息,將輸出的省市縣信息分開(kāi)放在不同的單元格中,感興趣的可以了解下
    2023-08-08
  • flask框架自定義過(guò)濾器示例【markdown文件讀取和展示功能】

    flask框架自定義過(guò)濾器示例【markdown文件讀取和展示功能】

    這篇文章主要介紹了flask框架自定義過(guò)濾器,結(jié)合實(shí)例形式分析了flask基于自定義過(guò)濾器實(shí)現(xiàn)markdown文件讀取和展示功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11

最新評(píng)論

塔城市| 武鸣县| 紫金县| 兴安盟| 丁青县| 财经| 突泉县| 石泉县| 即墨市| 弥渡县| 石楼县| 伽师县| 淮安市| 安国市| 宿松县| 荥阳市| 南开区| 分宜县| 双鸭山市| 皋兰县| 佛山市| 广宗县| 台前县| 遂宁市| 宁明县| 庆阳市| 赤水市| 永昌县| 延寿县| 涞源县| 丰顺县| 墨玉县| 江川县| 东光县| 南召县| 犍为县| 伊通| 宜宾县| 盖州市| 梁河县| 三江|