[Tutor] Socket question.

Martin Walsh mwalsh at groktech.org
Thu May 17 04:56:21 CEST 2007


Hey Dude :)

Dude, WHOA! wrote:
> kinda thing. The problem is that the client I wrote doesn't receive
> data and display it, and it also only executes single word commands.

> Server side:
> #!/usr/bin/env python

<snip>

> 	try:
> 		echo = Popen(command, stdout=PIPE).stdout.read()

On a linux system (and perhaps Windows as well), the type of 'command'
seems to be important and changes the behavior of Popen -- whether it be
string or sequence. If you pass a 'command' as a string that includes
arguments (ex. 'ls -l'), the above will raise an exception. I'm not sure
if the same applies to Windows. You could try passing command as a list
or tuple (ex command.split(), ['ls', '-l'], or similar), or add
'shell=True' to the Popen call.

> Client:
> #!/usr/bin/env python

<snip>

> 	send = raw_input('Send: ')
> 	sock.send(send)
> 	sock.recv(2048)

Try 'print sock.recv(2048)'.

> 	sock.close()

HTH,
Marty


More information about the Tutor mailing list