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

Python實現(xiàn)端口復(fù)用實例代碼

 更新時間:2014年07月03日 14:50:51   投稿:shichen2014  
這篇文章主要介紹了Python實現(xiàn)端口復(fù)用實例代碼,需要的朋友可以參考下

本文介紹Python實現(xiàn)端口復(fù)用實例如下所示:

#coding=utf-8
import socket
import sys
import select
import threading
host='192.168.99.100'
port=80
class Thread(threading.Thread):
  def __init__(self,buf,sockfd):
    threading.Thread.__init__(self)
    self.buf=buf
    self.sockfd=sockfd
  def run(self):
   if len(self.buf)!=0:
    if 'GET' in self.buf :  #判斷是否是瀏覽器提交的數(shù)據(jù)如果是則將提交的數(shù)據(jù)轉(zhuǎn)發(fā)至本地環(huán)回地址的80端口
     s2=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
     s2.connect(('127.0.0.1',80))
     s2.send(self.buf)
     bufer=''
     while 1:
      recv_data=s2.recv(1024)
      bufer+=recv_data
      if len(recv_data)==0:
       break
     print bufer,len(bufer)
     if len(bufer)==0:
      pass     
     self.sockfd.send(bufer)  #將服務(wù)器發(fā)送的數(shù)據(jù)發(fā)回客戶端
     s2.close
     self.sockfd.close
     sys.exit()
    else:
     'ps:connect to ssh' #如果數(shù)據(jù)不是瀏覽器提交則將其轉(zhuǎn)發(fā)至本地的22端口
     s2=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
     s2.connect(('127.0.0.1',22))
     s2.send(self.buf)
     recv_data=s2.recv(4096)
     conn.send(recv_data)
     self.sockfd.close
     s2.close
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, 1 ) #端口復(fù)用的關(guān)鍵點(diǎn)
s.bind((host,port))
s.listen(10)
while 1:
 infds,outfds,errfds=select.select([s,],[],[],5) #使用select函數(shù)進(jìn)行非阻塞操作
 if len(infds)!=0:
  conn,(addr,port)=s.accept()
  print 'connected by',addr,port
  data=conn.recv(1024)
  t=Thread(data,conn)
  t.start()
s.close
#coding=utf-8
import socket
import sys
import select
import threading
host='192.168.99.100'
port=80
class Thread(threading.Thread):
  def __init__(self,buf,sockfd):
    threading.Thread.__init__(self)
    self.buf=buf
    self.sockfd=sockfd
  def run(self):
   if len(self.buf)!=0:
    if 'GET' in self.buf :  #判斷是否是瀏覽器提交的數(shù)據(jù)如果是則將提交的數(shù)據(jù)轉(zhuǎn)發(fā)至本地環(huán)回地址的80端口
     s2=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
     s2.connect(('127.0.0.1',80))
     s2.send(self.buf)
     bufer=''
     while 1:
      recv_data=s2.recv(1024)
      bufer+=recv_data
      if len(recv_data)==0:
       break
     print bufer,len(bufer)
     if len(bufer)==0:
      pass     
     self.sockfd.send(bufer)  #將服務(wù)器發(fā)送的數(shù)據(jù)發(fā)回客戶端
     s2.close
     self.sockfd.close
     sys.exit()
    else:
     'ps:connect to ssh' #如果數(shù)據(jù)不是瀏覽器提交則將其轉(zhuǎn)發(fā)至本地的22端口
     s2=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
     s2.connect(('127.0.0.1',22))
     s2.send(self.buf)
     recv_data=s2.recv(4096)
     conn.send(recv_data)
     self.sockfd.close
     s2.close
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, 1 ) #端口復(fù)用的關(guān)鍵點(diǎn)
s.bind((host,port))
s.listen(10)
while 1:
 infds,outfds,errfds=select.select([s,],[],[],5) #使用select函數(shù)進(jìn)行非阻塞操作
 if len(infds)!=0:
  conn,(addr,port)=s.accept()
  print 'connected by',addr,port
  data=conn.recv(1024)
  t=Thread(data,conn)
  t.start()
s.close

例子2

import socket
tcp1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#在綁定前調(diào)用setsockopt讓套接字允許地址重用
tcp1.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
tcp2.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
 #接下來兩個套接字都也可以綁定到同一個端口上
tcp1.bind(('0.0.0.0', 12345))
tcp2.bind(('0.0.0.0', 12345))
import socket
tcp1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#在綁定前調(diào)用setsockopt讓套接字允許地址重用
tcp1.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
tcp2.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
 #接下來兩個套接字都也可以綁定到同一個端口上
tcp1.bind(('0.0.0.0', 12345))
tcp2.bind(('0.0.0.0', 12345))

例子3

重定向

import socket,os
bufLen = 4*1024
sock1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
sock1.bind(('192.168.168.100', 8000)) 
sock1.listen(5) 
sock2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
sock2.connect(('192.168.168.100', 12345)) 
while True:
    connection,address = sock1.accept() 
    buf = connection.recv(bufLen) 
    #print buf      
    sock2.send(buf) 
    connection.send(sock2.recv(bufLen))
    connection.close()
import socket,os
bufLen = 4*1024
sock1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
sock1.bind(('192.168.168.100', 8000)) 
sock1.listen(5) 
sock2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
sock2.connect(('192.168.168.100', 12345)) 
while True:
    connection,address = sock1.accept() 
    buf = connection.recv(bufLen) 
    #print buf      
    sock2.send(buf) 
    connection.send(sock2.recv(bufLen))
    connection.close()

相關(guān)文章

  • Python按鍵或值對字典進(jìn)行排序

    Python按鍵或值對字典進(jìn)行排序

    這篇文章主要為大家介紹了Python對字典進(jìn)行排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 基于Python獲取城市近7天天氣預(yù)報

    基于Python獲取城市近7天天氣預(yù)報

    這篇文章主要介紹了基于Python獲取城市近7天天氣預(yù)報,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Python實現(xiàn)把json格式轉(zhuǎn)換成文本或sql文件

    Python實現(xiàn)把json格式轉(zhuǎn)換成文本或sql文件

    這篇文章主要介紹了Python實現(xiàn)把json格式轉(zhuǎn)換成文本或sql文件,本文直接給出代碼實例,需要的朋友可以參考下
    2015-07-07
  • Python獲取圖片像素BGR值并生成純色圖

    Python獲取圖片像素BGR值并生成純色圖

    這篇文章主要介紹了利用Python獲取圖片像素BGR值,并將其生成純色圖。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-01-01
  • python3 中的幾種除法介紹,小數(shù)的不同顯示

    python3 中的幾種除法介紹,小數(shù)的不同顯示

    這篇文章主要介紹了python3 中的幾種除法介紹,小數(shù)的不同顯示,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python基于模塊Paramiko實現(xiàn)SSHv2協(xié)議

    Python基于模塊Paramiko實現(xiàn)SSHv2協(xié)議

    這篇文章主要介紹了Python基于模塊Paramiko實現(xiàn)SSHv2協(xié)議,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Python中的list.sort()方法和函數(shù)sorted(list)

    Python中的list.sort()方法和函數(shù)sorted(list)

    這篇文章主要介紹了Python中的list.sort()方法和函數(shù)sorted(list),sort()是列表的方法,修改原列表使得它按照大小排序,沒有返回值,返回None
    2022-08-08
  • python+Tesseract OCR實現(xiàn)截屏識別文字

    python+Tesseract OCR實現(xiàn)截屏識別文字

    pytesseract Python常用pytesseract進(jìn)行圖片上的文字識別,本文主要介紹了python+Tesseract?OCR實現(xiàn)截屏識別文字,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • 使用Python實現(xiàn)Exce格式化批處理工具

    使用Python實現(xiàn)Exce格式化批處理工具

    原始Excel數(shù)據(jù)常常存在格式不統(tǒng)一、空值、重復(fù)數(shù)據(jù)等問題,影響數(shù)據(jù)的準(zhǔn)確性和可用性,所以本文就來使用Python編寫一個Excel數(shù)據(jù)清洗工具,有需要的小伙伴可以參考一下
    2025-04-04
  • Python全棧之學(xué)習(xí)CSS(2)

    Python全棧之學(xué)習(xí)CSS(2)

    這篇文章主要為大家介紹了Python全棧之CSS,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01

最新評論

招远市| 绥阳县| 汤原县| 福建省| 兴业县| 石渠县| 兴义市| 仲巴县| 满洲里市| 阿图什市| 洪泽县| 金坛市| 丰宁| 洪泽县| 陈巴尔虎旗| 保山市| 仁寿县| 文成县| 贵德县| 新建县| 灵寿县| 湛江市| 图片| 铜鼓县| 元江| 襄樊市| 余庆县| 建昌县| 威海市| 镇安县| 高碑店市| 高要市| 祥云县| 青铜峡市| 淮安市| 大田县| 什邡市| 昌邑市| 建德市| 青浦区| 兰州市|