2012-10-20 6 views
23

मुझे इन क्लाइंट और सर्वर कोडों में कोई समस्या है, मुझे प्राप्त हो रहा है [Errno 10061] कोई कनेक्शन नहीं बनाया जा सकता क्योंकि लक्ष्य मशीन ने सक्रिय रूप से इनकार कर दियाएरर्नो 10061: कोई कनेक्शन नहीं बनाया जा सका क्योंकि लक्ष्य मशीन ने सक्रिय रूप से इसे अस्वीकार कर दिया (क्लाइंट - सर्वर)

मैं विंडोज एक्सपी एसपी 3 और विंडोज 7 64 बिट पर क्लाइंट के साथ वर्चुअल मशीन पर सर्वर चला रहा हूं, मेरा पायथन संस्करण 2.7.3 है। मैं क्या जानना चाहता हूं कि विभिन्न नेटवर्क पर क्लाइंट और सर्वर का उपयोग करने के लिए कोड को कैसे संपादित करना चाहिए! धन्यवाद!

सर्वर:

#!/usr/bin/python   # This is server.py file 

import socket    # Import socket module 
s = socket.socket()   # Create a socket object 
host = '0.0.0.0' # Get local machine name 
port = 12345    # Reserve a port for your service. 


print 'Server started!' 
print 'Waiting for clients...' 

s.bind((host, port))  # Bind to the port 
s.listen(5)     # Now wait for client connection. 
c, addr = s.accept()  # Establish connection with client. 
print 'Got connection from', addr 
while True: 
    msg = c.recv(1024) 
    print addr, ' >> ', msg 
    msg = raw_input('SERVER >> ') 
    c.send(msg); 
    #c.close()    # Close the connection 

ग्राहक:

#!/usr/bin/python   # This is client.py file 

import socket    # Import socket module 

s = socket.socket()   # Create a socket object 
host = socket.gethostname() # Get local machine name 
port = 12345    # Reserve a port for your service. 

print 'Connecting to ', host, port 
s.connect((host, port)) 

while True: 
    msg = raw_input('CLIENT >> ') 
    s.send(msg) 
    msg = s.recv(1024) 
    print 'SERVER >> ', msg 
#s.close      # Close the socket when done 

पुनश्च: कोड इंटरनेट से है।

+2

_actively से इनकार कर दिया it_ का तात्पर्य है कि सर्वर मशीन के फ़ायरवॉल कनेक्शन अवरुद्ध, शायद कोड से संबंधित नहीं। –

+0

फ़ायरवॉल बंद है:/अभी भी त्रुटि हो रही है – havox

+2

आपका वीएम अतिथि नेटवर्क से कैसे जुड़ा हुआ है? एनएटी + पोर्ट आगे या पुल मोड के माध्यम से? –

उत्तर

19

10061 WSAECONNREFUSED है, 'कनेक्शन अस्वीकार कर दिया', जिसका अर्थ है आईपी पर सुन कुछ नहीं था: पोर्ट से कनेक्ट करने की कोशिश की।

वर्ष 2000 के आसपास एक फ़ायरवॉल उत्पाद था जो अवरुद्ध बंदरगाहों के आने वाले कनेक्शन को अनदेखा करने के बजाय रिफसल जारी करता था, लेकिन इसे जल्द ही हमलावरों को सूचना रिसाव के रूप में पहचाना गया और सही या वापस ले लिया गया।

2

उदाहरणों का उपयोग करके: https://docs.python.org/3.2/library/socketserver.html मैंने यह निर्धारित किया कि मुझे उस सर्वर पर HOST पोर्ट सेट करने की आवश्यकता है जिस पर मेरा सर्वर प्रोग्राम चल रहा था। तो TCPServer 192.168.0.1 HOST पर = TCPServer आईपी 192.168.0.1 तो मैं TCPServer आईपी को इंगित करने के TCPClient ओर स्थापित करने के लिए किया था। तो TCPClient HOST मान = 192.168.0.1 - क्षमा करें, यह सबसे अच्छा है जिसका मैं वर्णन कर सकता हूं।

+1

दूसरे शब्दों में आपके पास लक्षित आईपी पता गलत था। – EJP

3

सुझाव: actively refused कुछ हद तक गहरी तकनीकी परेशानी की तरह लगता है, लेकिन ...

... वास्तव में, यह प्रतिक्रिया (और भी विशेष रूप से errno:10061) भी दिया जाता है, अगर एक बिन कॉल/मोंगो पर निष्पादन and the mongodb service is simply not running लक्ष्य मशीन यह स्थानीय मशीन उदाहरणों पर भी लागू होता है (सभी स्थानीयहोस्ट पर हो रहे हैं)।

हमेशा इस छोटी संभावना के लिए पहले के लिए बाहर निकलें, यानी बस अपने डीबी तक पहुंचने के लिए कमांड लाइन क्लाइंट का उपयोग करके।

See here.

-1

समाधान दोनों क्लाइंट और सर्वर में एक ही आईपी और पोर्ट नंबर का उपयोग करने के लिए है। TCP_IP = 'आईपी नंबर यहाँ लिखना' TCP_PORT उपयोग करने का प्रयास = क्लाइंट में, यहाँ s.connect ((TCP_IP, TCP_PORT))

+0

आमतौर पर सर्वर में 0.0.0.0 का उपयोग करने के लिए समाधान होता है। – EJP

0

रिट पोर्ट संख्या यदि आप दूरस्थ सर्वर आप मशीन पर स्थापित किया है। server.py होस्ट को "लोकलहोस्ट" और पोर्ट नंबर के रूप में दें। तो ग्राहक के पक्ष में, आपको स्थानीय आईपी 127.0.0.1 और पोर्ट संख्या देना है। तो इसकी काम करता है

+0

प्रश्न 'अलग-अलग नेटवर्क' के बारे में है, और यह उत्तर एक ही नेटवर्क में अलग-अलग मेजबानों पर भी काम नहीं करेगा, अकेले अलग नेटवर्क दें। – EJP

-1

अल्पकालिक समाधान क्रमशः डिफ़ॉल्ट आईआईएस मेजबान और बंदरगाह सामान्य रूप से 120.0.0.1 और 80 उपयोग करने के लिए है। हालांकि मैं अभी भी एक बहुमुखी समाधान की तलाश में हूं।

+0

यह देखते हुए कि ओपी दो मशीनों में चल रहा है, और यह एक स्थानीयहोस्ट समाधान है, यह काम करने की संभावना नहीं है? – roelofs

+0

और दिया गया है कि लोकहोस्ट 127.0.0.1 है, 120.0.0.1 नहीं, यह एक मेजबान में भी काम नहीं करेगा। – EJP

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