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

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

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

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

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

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

瀏覽器得到:

2016614172131520.png (426×190)

然后,我們在forwarding.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實現(xiàn)斐波那契(Fibonacci)函數(shù)

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

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

    python使用requests庫提交multipart/form-data請求的方法詳解

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

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

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

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

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

    使用Python進行防病毒免殺解析

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

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

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

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

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

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

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

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

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

    利用python計算windows全盤文件md5值的腳本

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

最新評論

临沧市| 曲周县| 芦溪县| 盐津县| 淮安市| 四川省| 东丰县| 南漳县| 平顺县| 阿拉善左旗| 元谋县| 安新县| 扶余县| 苍南县| 逊克县| 平乐县| 会同县| 湘乡市| 周口市| 通山县| 七台河市| 霍邱县| 社旗县| 阳新县| 双鸭山市| 白沙| 灵山县| 虹口区| 宜良县| 磐安县| 定南县| 玉溪市| 柳林县| 内乡县| 尉犁县| 旬阳县| 仁布县| 抚州市| 家居| 阿鲁科尔沁旗| 如东县|