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

Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例

 更新時(shí)間:2016年06月14日 17:31:00   作者:Cedric Porter  
這篇文章主要介紹了Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例,以一個(gè)webpy站點(diǎn)在本機(jī)的兩個(gè)端口雙向通信下演示,需要的朋友可以參考下

首先,我們用webpy寫一個(gè)簡(jiǎn)單的網(wǎng)站,監(jiān)聽8080端口,返回“Hello, EverET.org”的頁面。

然后我們使用我們的forwarding.py,在80端口和8080端口中間建立兩條通信管道用于雙向通信。

此時(shí),我們通過80端口訪問我們的服務(wù)器。

瀏覽器得到:

2016614172131520.png (426×190)

然后,我們?cè)趂orwarding.py的輸出結(jié)果中可以看到瀏覽器和webpy之間的通信內(nèi)容。

2016614172157520.png (675×588)

代碼:

#!/usr/bin/env python
import sys, socket, time, threading

loglock = threading.Lock()
def log(msg):
  loglock.acquire()
  try:
    print '[%s]: \n%s\n' % (time.ctime(), msg.strip())
    sys.stdout.flush()
  finally:
    loglock.release()

class PipeThread(threading.Thread):
  def __init__(self, source, target):
    threading.Thread.__init__(self)
    self.source = source
    self.target = target

  def run(self):
    while True:
      try:
        data = self.source.recv(1024)
        log(data)
        if not data: break
        self.target.send(data)
      except:
        break
    log('PipeThread done')

class Forwarding(threading.Thread):
  def __init__(self, port, targethost, targetport):
    threading.Thread.__init__(self)
    self.targethost = targethost
    self.targetport = targetport
    self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    self.sock.bind(('0.0.0.0', port))
    self.sock.listen(10)
  def run(self):
    while True:
      client_fd, client_addr = self.sock.accept()
      target_fd = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      target_fd.connect((self.targethost, self.targetport))
      log('new connect')
      # two direct pipe
      PipeThread(target_fd, client_fd).start()
      PipeThread(client_fd, target_fd).start()


if __name__ == '__main__':
  print 'Starting'
  import sys
  try:
    port = int(sys.argv[1])
    targethost = sys.argv[2]
    try: targetport = int(sys.argv[3])
    except IndexError: targetport = port
  except (ValueError, IndexError):
    print 'Usage: %s port targethost [targetport]' % sys.argv[0]
    sys.exit(1)

  #sys.stdout = open('forwaring.log', 'w')
  Forwarding(port, targethost, targetport).start()

相關(guān)文章

  • 用Python實(shí)現(xiàn)斐波那契(Fibonacci)函數(shù)

    用Python實(shí)現(xiàn)斐波那契(Fibonacci)函數(shù)

    這篇文章主要介紹了用Python實(shí)現(xiàn)斐波那契(Fibonacci)函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • python使用requests庫提交multipart/form-data請(qǐng)求的方法詳解

    python使用requests庫提交multipart/form-data請(qǐng)求的方法詳解

    multipart/form-data的基礎(chǔ)是post請(qǐng)求,即基于post請(qǐng)求來實(shí)現(xiàn)的 ,下面這篇文章主要給大家介紹了關(guān)于python使用requests庫提交multipart/form-data請(qǐng)求的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Python利用百度地圖獲取兩地距離(附demo)

    Python利用百度地圖獲取兩地距離(附demo)

    本文主要介紹了Python利用百度地圖獲取兩地距離,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Python實(shí)現(xiàn)讀取并保存文件的類

    Python實(shí)現(xiàn)讀取并保存文件的類

    這篇文章主要介紹了Python實(shí)現(xiàn)讀取并保存文件的類,涉及Python針對(duì)文件的讀寫操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-05-05
  • 使用Python進(jìn)行防病毒免殺解析

    使用Python進(jìn)行防病毒免殺解析

    這篇文章主要介紹了使用Python進(jìn)行防病毒免殺,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python實(shí)現(xiàn)孤立隨機(jī)森林算法的示例代碼

    Python實(shí)現(xiàn)孤立隨機(jī)森林算法的示例代碼

    孤立森林(isolation?Forest)是一種高效的異常檢測(cè)算法,它和隨機(jī)森林類似,但每次選擇劃分屬性和劃分點(diǎn)(值)時(shí)都是隨機(jī)的,而不是根據(jù)信息增益或基尼指數(shù)來選擇。本文將用Python實(shí)現(xiàn)這一算法,需要的可以參考一下
    2022-03-03
  • python3整數(shù)反轉(zhuǎn)的實(shí)現(xiàn)方法

    python3整數(shù)反轉(zhuǎn)的實(shí)現(xiàn)方法

    這篇文章主要介紹了python3整數(shù)反轉(zhuǎn)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python實(shí)現(xiàn)在字符串中查找子字符串的方法

    python實(shí)現(xiàn)在字符串中查找子字符串的方法

    這篇文章主要介紹了python實(shí)現(xiàn)在字符串中查找子字符串的方法,涉及Python中find方法的相關(guān)使用技巧,需要的朋友可以參考下
    2015-07-07
  • Python騷操作之動(dòng)態(tài)定義函數(shù)

    Python騷操作之動(dòng)態(tài)定義函數(shù)

    這篇文章主要介紹了Python騷操作之動(dòng)態(tài)定義函數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 利用python計(jì)算windows全盤文件md5值的腳本

    利用python計(jì)算windows全盤文件md5值的腳本

    這篇文章主要介紹了利用python計(jì)算windows全盤文件md5值的腳本,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論

潼关县| 亳州市| 中超| 元氏县| 桂林市| 滨海县| 唐河县| 盘锦市| 防城港市| 逊克县| 中牟县| 渑池县| 晴隆县| 乐安县| 民县| 遂昌县| 丹东市| 育儿| 岗巴县| 兴海县| 石阡县| 讷河市| 顺义区| 凤山市| 益阳市| 铅山县| 谢通门县| 英山县| 银川市| 浦县| 固原市| 焦作市| 清丰县| 威信县| 称多县| 肇源县| 常德市| 肥城市| 青铜峡市| 内黄县| 通江县|