2012-07-05 8 views
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) 

क्या परिवर्तन की आवश्यकता होगी यह अपने लैपटॉप और एक के बीच संवाद किये हैं निजी सर्वर मैं काम करता हूँ? मैंने अपनी खोज से यह पता लगाया है कि पोर्टफॉरवर्डिंग इसके बारे में जाने का सबसे अच्छा तरीका है लेकिन इसके बारे में कोई स्पष्टीकरण या ट्यूटोरियल नहीं मिला है।

आप

+0

'मेजबान = socket.socket()' शायद एक कॉपी-पेस्ट त्रुटि – jfs

+0

है मैं बंदरगाहों अग्रेषित करने के लिए कैसे इतना पता नहीं है मुझे यकीन है कि यह होगा संभव। मैं इस बिंदु पर किसी भी विधि का प्रयास करेंगे। – user1340048

+1

क्लाइंट कोड में आप 'होस्ट =' अपने सर्वर 'का उपयोग क्यों नहीं कर सकते? – jfs

उत्तर

1

आप अजगर पोर्ट अग्रेषण कार्यान्वयन के बारे में परवाह है, तो शुक्र है, वहाँ एक पुराने लेकिन महान ActriveState नुस्खा को लागू करने वाली अतुल्यकालिक पोर्ट अग्रेषण सर्वर केवल अजगर मानक पुस्तकालय (सॉकेट, asyncore) का उपयोग कर। आप code.activestate.com पर चारों ओर पोक कर सकते हैं।

पीएस स्क्रिप्ट के थ्रेडेड संस्करण का एक लिंक भी है।

2

तुम सच में अजगर में ऐसा करने की जरूरत नहीं है, बस netcat का उपयोग करें: -

http://netcat.sourceforge.net/

पोर्ट अग्रेषण या पोर्ट मानचित्रण लिनक्स पर, netcat पोर्ट अग्रेषण के लिए इस्तेमाल किया जा सकता है। http://en.wikipedia.org/wiki/Netcat#Port_Forwarding_or_Port_Mapping

यह आमतौर पर के रूप में आता है -:

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' 

स्रोत: - नीचे netcat में पोर्ट अग्रेषण करने के लिए नौ अलग अलग तरीकों (netcat की 'Ncat' अवतार के साथ इन काम हालांकि समर्थित नहीं स्विच -c) कर रहे हैं सबसे * nix वितरण पर मानक और वहाँ भी है एक Win32 बंदरगाह: -

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

संबंधित मुद्दे