6

を使用して、同じマシン上で簡単にソケット通信を行うことができます

サーバ:

import socket

s = socket.socket()
host = socket.socket()
port = 8000
s.bind((host,port))
s.listen(5)
while true:
     c,addr = s.accept()
     print 'got connection from', addr
     c.send('thank you for connecting')
     c.close()

クライアント:

import socket 

s = socket.socket()
host=socket.gethostname()
port = 8000
s.connect((host,port))
print s.recv(1024)

これが私のラップトップと私が作業しているプラ​​イベートサーバーとの間で通信するには、どのような変更を加える必要がありますか? 検索の結果、ポート転送が最善の方法であることがわかりましたが、その方法に関する説明やチュートリアルは見つかりませんでした。

ありがとうございました

4

2 に答える 2

2

Python でこれを行う必要がない場合は、netcat を使用してください: -

http://netcat.sourceforge.net/

ポート フォワーディングまたはポート マッピング Linux では、NetCat をポート フォワーディングに使用できます。以下は、NetCat でポート転送を行う 9 つの異なる方法です (ただし、-c スイッチはサポートされていません - これらは netcat の「ncat」化身で動作します)。

nc -l -p port1 -c ' nc -l -p port2'
nc -l -p port1 -c ' nc host2 port2'
nc -l -p port1 -c ' nc -u -l -p port2'
nc -l -p port1 -c ' nc -u host2 port2'
nc host1 port1 -c ' nc host2 port2'
nc host1 port1 -c ' nc -u -l -p port2'
nc host1 port1 -c ' nc -u host2 port2'
nc -u -l -p port1 -c ' nc -u -l -p port2'
nc -u -l -p port1 -c ' nc -u host2 port2'

ソース: - http://en.wikipedia.org/wiki/Netcat#Port_Forwarding_or_Port_Mapping

これは通常、ほとんどの *nix ディストリビューションに標準で付属しており、Win32 ポートもあります: -

http://www.stuartaxon.com/2008/05/22/netcat-in-windows/

于 2012-08-22T10:24:03.947 に答える
1

Python ポート フォワーディングの実装に関心がある場合は、Python 標準ライブラリ (ソケット、非同期コア) のみを使用して非同期ポート フォワーディング サーバーを実装する、古くて優れた ActiveState レシピがあります。code.activestate.comをざっと見て回ることができます。

PS スクリプトのスレッド化されたバージョンへのリンクもあります。

于 2012-07-05T19:07:51.577 に答える