Hi everyone. I'm fairly new to Python, and even more new to socket programming. I think I've wrapped my head around sockets, and with that I want to create a Telnet-based chat server, the idea being people connect to the telnet servers with their clients and they all communicate. I've got the code working, but the server sends each letter to the clients on a new line! I've read about this kind of thing on Windows on Google, but I can't find a solution to this issue.
I got the code from here - http://www.scribd.com/doc/134861/Sockets-Programming-with-python. When I get this working I want to take my knowledge of sockets and expand the code further. Here's the code: import socket import select class ChatServer: def __init__( self, port ): self.port = port; self.srvsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.srvsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.srvsock.bind(("", port)) self.srvsock.listen( 5 ) self.descriptors = [self.srvsock] print "ChatServer started, listening on port %s" % port def run( self ): while 1: (sread, swrite, sexc) = select.select( self.descriptors, [], [] ) for sock in sread: if sock == self.srvsock: self.accept_new_connection() else: data = '' string = sock.recv(100) if string == '': host,port = sock.getpeername() string = 'Client left %s:%s\r\n' % (host, port) self.broadcast_string( string, sock ) sock.close self.descriptors.remove(sock) else: host, port = sock.getpeername() newstring = '[%s:%s] %s\r\n' % (host, port, string) self.broadcast_string( newstring, sock ) def accept_new_connection( self ): newsock, (remhost, remport) = self.srvsock.accept() self.descriptors.append( newsock ) newsock.send("You're connected to the chat server!\r\n") string = 'Client joined %s:%s\r\n' % (remhost, remport) self.broadcast_string( string, newsock) def broadcast_string( self, string, omit_sock ): for sock in self.descriptors: if sock != self.srvsock and sock != omit_sock: sock.send(string) print string server = ChatServer( 2626 ).run() Can anyone help me find a solution to this? Any help would be appreciated. Thanks! -- http://mail.python.org/mailman/listinfo/python-list