Hey folks. I'm trying to create a (fairly) simple server that listens for connections and when it receives one sends a message to the client and then waits for a response (and would continue to do that). My problem is, every time my client connects, the server doesn't send the text and then immediately closes the connection with the client, but DOES print that the client was connected. Anyone know why? Here's my code:
# conn.py import socket import asyncore import asynchat import string host = 'localhost' #socket.gethostname () port = 8017 buf = 1024 class ConnChannel (asynchat.async_chat): def __init__(self, conn): self.conn = conn def handle_connect(): self.send(self.conn, "Hello, Welcome to BasicMUD.\r\n") # it doesn't do thise self.numberclients = self.numberclients + 1 # or this self.send(self.conn, "There are " + self.numberclients + " players online.") # or this print "Client connected!" # it prints this def handle_read(self): print self.recv(8192) def handle_write(self): print "sending" class ConnTube (asyncore.dispatcher): def __init__(self, hostd, portd): asyncore.dispatcher.__init__(self) self.create_socket(socket.AF_INET, socket.SOCK_STREAM ) self.bind ( ( hostd , portd ) ) self.listen ( 5 ) self.numberclients = 0 def handle_accept(self): channel, addr = self.accept() ConnChannel(channel) connTube = ConnTube(host, port) asyncore.loop() Thanks everyone! Rick
-- http://mail.python.org/mailman/listinfo/python-list