Solved

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

Posted on 2014-09-09
8
239 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
  • 4
  • 4
8 Comments
 
LVL 28

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 28

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
 

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
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
LVL 28

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 28

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

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Don’t let your business fall victim to the coming apocalypse – use our Survival Guide for the Fax Apocalypse to identify the risks and signs of zombie fax activities at your business.
When it comes to security, there are always trade-offs between security and convenience/ease of administration. This article examines some of the main pros and cons of using key authentication vs password authentication for hosting an SFTP server.
Learn the basics of lists in Python. Lists, as their name suggests, are a means for ordering and storing values. : Lists are declared using brackets; for example: t = [1, 2, 3]: Lists may contain a mix of data types; for example: t = ['string', 1, T…
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

743 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now