Hi again, I've done some more playing around with socket and socketserver and have discovered I can send strings or lists with socket.send() by converting to bytes. But lists with strings in them or dicts can't be converted by bytes(). How can I send those?
One idea I initially tried was to set up a server (host,port) for receiving data and another one (host, different port) for strings, but that didn't work so I was thinking of throwing everything into a list or a dictionary and sending that but that's not working either. Any ideas? Thanks, John. On Dec 24, 12:03 am, "Gabriel Genellina" <gagsl-...@yahoo.com.ar> wrote: > En Wed, 24 Dec 2008 03:59:42 -0200, greyw...@gmail.com > <greyw...@gmail.com> escribió: > > > New guy here. I'm trying to figure out sockets in order to one day do > > a multiplayer game. Here's my problem: even the simplest examples > > don't work on my computer: > > > A simple server: > > > fromsocketimport * > > myHost = '' > > Try with myHost = '127.0.0.1' instead - a firewall might be blocking your > server. > > > s.listen(5) # allow 5 simultaneous connections > > Not exactly: your server program only handles a single connection at a > time. The 5 above specifies how many connections may exist "on hold" > waiting for you to accept() them. > > > connection.send('echo -> ' + data) > > That's fine for Python 2.6, but you must use b'echo -> ' with 3.0 > > > And a simple client: > > > s.send('Hello world') # send the data > > Same as above, should be b'Hello world' with Python 3.0 > > > If I run testserver.py via the cmd prompt in Windows XP and then the > > testclient.py program, I get the following error: > > > Traceback (most recent call last): > > File "C:\Python30\testclient.py", line 12, in <module> > > s.send('Hello world') # send the data > > TypeError: send() argument 1 must be string or buffer, not str > > The above error message is wrong (and I think it was corrected on the 3.0 > final release; if you got it with 3.0 final, file a bug report at > http://bugs.python.org/) > > > This happens in 2.6 or 3.0 and with different example client & server > > programs from the web. What am I missing? > > The error above surely comes from 3.0; with 2.6 you should get a different > error (if it fails at all). Try again with 2.6.1. I didn't run the code > but it looks fine -- if you got it from a book or article, unless it > explicitely says "Python 3.0", assume it was written for the 2.x series. > > -- > Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list