#!/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
PS : code is from internet.
–
10061 is WSAECONNREFUSED, 'connection refused', which means there was nothing listening at the IP:port you tried to connect to.
There was a firewall product around the year 2000 that issued refusals instead of ignoring incoming connections to blocked ports, but this was quickly recognised as an information leak to attackers and corrected or withdrawn.
Hint: actively refused
sounds like somewhat deeper technical trouble, but...
...actually, this response (and also specifically errno:10061
) is also given, if one calls the bin/mongo executable and the mongodb service is simply not running on the target machine. This even applies to local machine instances (all happening on localhost).
➪ Always rule out for this trivial possibility first, i.e. simply by using the command line client to access your db.
See here.
So I was facing the same issue,
and the solution that worked for me was...
I am assuming your server and client program are written in python.
First, open one python shell
open and run the Server program first
then open another different python shell
open and run the Client program here
done !!
Using the examples from: https://docs.python.org/3.2/library/socketserver.html
I determined that I needed to set the HOST port to the machine I had the server program running on. So TCPServer on 192.168.0.1 HOST = TCPServer IP 192.168.0.1 then I had to set the TCPClient side to point to the TCPServer IP. So the TCPClient HOST value = 192.168.0.1 - Sorry, that's the best I can describe it.
–
instead of localhost of '0.0.0.0', use local network address as host in case of both - the server and the client - code.
host = '192.168.12.12'
port = 12345
use this host address when binding and connecting to the socket.
server.bind((host, port))
client.connect((host, port))
this change solved the issue for me.
The solution is to use the same IP and Port number in both client and server.
Try, in client to use
TCP_IP = 'write the ip number here'
TCP_PORT = writ the port number here
s.connect((TCP_IP, TCP_PORT))
if you have remote server installed on you machine. give server.py host as "localhost" and the port number.
then client side , you have to give local ip- 127.0.0.1 and port number.
then its works
–
This could be because of proxy or firewall. If it's proxy, then you need to specify proxy setting at entry point of your code or project.
import os #for proxy
proxy = 'http://10.XX.XX.XX:8X8X' #your own proxy 'http://<user>:<pass>@<proxy>:<port>'
os.environ['http_proxy'] = proxy
os.environ['HTTP_PROXY'] = proxy
os.environ['https_proxy'] = proxy
os.environ['HTTPS_PROXY'] = proxy
#rest of code .....
–
The first: Please make sure your port '12345' is opening and then
when you using a different network. You have to use the IP address in LAN. Don't use the 'localhost' or '127.0.0.1'.
The solution here is:
In server
host = '192.168.1.12' #Ip address in LAN network
In client
host = '27.32.123.32' # external IP Address
Hope it works for you
–
–
I had errors 10060 and 10061. The reason was in my antivirus(Eset Nod 32). Try to turn off the Firewall of your antivirus as I did or just delete it for a time to test the program. If everything started to work properly, add that program to the exclusion or switch to another antivirus.
Also, try to change the 'host' variable to an empty string:
host = ''
And add socket.AF_INET, socket.SOCK_STREAM to the 's' variable:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
I was doing this tutorial and they said that windows users will have a problem. They said that you can check the Windows Firewall to fix the problem. Let me show you a quick Google Search on how to change the windows firewall:
Go to Start and open Control Panel. Select System and Security > Windows Defender Firewall. Choose Turn Windows Firewall on or off. Select Turn on Windows Firewall for domain, private, and public network settings.
After that, your app should work. Also, in your client(not server side) the port should be 0.0.0.0
and in the server side, it should be 127.0.0.1
.
If the client and server are running on the same machine (as in running 2 programs), it's OK to config both IP address as locahost
. However, if you are to run them on different machines (including VMs), you need to
Make sure they are on the same subnet (usually by ping
ing each other)
The Server needs to config the host IP as its IP address (like 192.168.xxx.xxx
instead of localhost
or 127.0.0.1
). You may find the IP address by running ipconfig
on Windows or ip a
on Unix-like server
This change worked for me with my Client on Windows and Server on Ubuntu VM.
Some of the other solutions will work if you want to run server.py
and client.py
on the same machine. I wanted to try and run it on two different machines (windows and raspberry pi), but on the same network.
For me, it was a matter of choosing the correct IP address. If my windows machine is the server, I used the IPV4 address of the windows machine. This can be found by running ipconfig
in the command prompt and selecting the 192.168.X.X number. The raspberry client side bounded to the same address. If the raspberry pi is the server, then I would bind to the inet address. You can find this by running ifconfig
in the terminal (again the 192.168.X.X).
Note though, the IP addresses are temporary. I believe if you want a more permanent set-up, the server IP address needs to be bound to the router's IP address, then port-forward to the server. That way, the client wouldn't even have to be on the same network.
–
metabase / python api - ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
See more linked questions