Solved

Why does this site's Python example code not work?

Posted on 2014-09-09
8
259 Views
Last Modified: 2014-09-29
Hi.
If I copy this site's Server & Client example code into IDLE, it explodes,

"connection refused" !

It looks straightforward. - but it doesn't connect, whether I have the server or client on my Mac or PC, respectively

What am I missing ? I got it working, aside,  in UDP, but now TCP is not simple like in Java.

That code's page is here
What is the ultimate Python networking site?

Thanks
0
Comment
Question by:beavoid
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
8 Comments
 
LVL 29

Expert Comment

by:pepr
ID: 40313745
The code works for me as is -- see the snapshot:

Client and server communication.
... both in Python 2 and in Python 3 (after slight modification).  Try to ping 127.0.0.1 to see whether the IP works (this should always work if the drivers are installed correctly and the service is not disabled somehow). Try netstat -a to learn more about your ports, and choose another if it is already used.
0
 

Author Comment

by:beavoid
ID: 40314512
Thanks

Improvement.

My localhost server at least registers connections from Client runs.

The server registers the local connection attempt, but it doesn't send the text input back.


I don't ask for text input, but hardcode it instead
data = "moo"

and the Server.py cmd line error is on the q.send(data)
TypeError : str doesn't support the buffer interface.
So, it can't send a hardcoded string.
Suggestions?
Thx
0
 
LVL 29

Expert Comment

by:pepr
ID: 40314552
The reason for the error is clear. You do use Python 3, and you try to send bytes of the string. However, Python 3 strings are abstract. There are no bytes to get implicitly. You have to explicitly encode the strings to bytes using some encoding. The data must be of the bytes type. Try to set
data = 'moo'.encode('utf-8')

Open in new window

.

The client gets (the stream of) bytes and if you need to get text, you have to decode the bytes at the client side:
print("Message from server : ", msg.decode('utf-8'))

Open in new window

0
MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

 

Author Comment

by:beavoid
ID: 40318475
Thanks

I put in the new code, with the Macbook OS X server's ip address as the host from the client
but it links now (tries) and on the Windows 7 client machine, it says "No connection could be made because the target machine actively refused it" [WinError 10061]

From a client machine's cmd console, pinging the OS X ip address with 32 bytes says
Reply from (a weird, wrong IP address) TTL expired In transit
4 times

The target machine is a macbook, client is PC. What might be wrong on the target machine?
0
 
LVL 29

Expert Comment

by:pepr
ID: 40318648
Well, I do not know.
0
 

Accepted Solution

by:
beavoid earned 0 total points
ID: 40342788
My networking code all works now!

Instead of localhost address, I had to use the literal IP address of the machine.
The major problem was also not being able to include data in a message.

making it a byte array was the solution
data = bytearray(5)
Data[0]=1

..send(data)
0
 
LVL 29

Expert Comment

by:pepr
ID: 40342840
@beavoid: Do not consider this comment an objection. Next time, you can simply accept your own answer.
0
 

Author Closing Comment

by:beavoid
ID: 40349533
No one commented, so I put the solution in! once I found it
0

Featured Post

Percona Live Europe 2017 | Sep 25 - 27, 2017

The Percona Live Open Source Database Conference Europe 2017 is the premier event for the diverse and active European open source database community, as well as businesses that develop and use open source database software.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

WARNING:   If you follow the instructions here, you will wipe out your VTP and VLAN configurations.  Make sure you have backed up your switch!!! I recently had some issues with a few low-end Cisco routers (RV325) and I opened a case with Cisco TA…
This article is in regards to the Cisco QSFP-4SFP10G-CU1M cables, which are designed to uplink/downlink 40GB ports to 10GB SFP ports. I recently experienced this and found very little configuration documentation on how these are supposed to be confi…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…
Suggested Courses
Course of the Month11 days, 1 hour left to enroll

628 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question