Advertisement
n0t4dM1n

irc server

May 23rd, 2011
827
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.52 KB | None | 0 0
  1. from System.Net.Sockets import *
  2. from System.Text import *
  3.  
  4. class Module1(object):
  5.     def __init__(self):
  6.         self._clientsList = Hashtable()
  7.  
  8.     def Main(self):
  9.         serverSocket = TcpListener(8888)
  10.         serverSocket.Start()
  11.         self.msg("Chat Server Started ....")
  12.         counter = 0
  13.         while (True):
  14.             counter += 1
  15.             clientSocket = serverSocket.AcceptTcpClient()
  16.             bytesFrom = Array.CreateInstance(Byte, 10024)
  17.             networkStream = clientSocket.GetStream()
  18.             networkStream.Read(bytesFrom, 0, clientSocket.ReceiveBufferSize)
  19.             dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
  20.             dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
  21.             self.clientsList(dataFromClient) = clientSocket
  22.             self.broadcast(dataFromClient + " Joined ", dataFromClient, False)
  23.             self.msg(dataFromClient + " Joined chat room ")
  24.             client = handleClinet()
  25.             client.startClient(clientSocket, dataFromClient, self._clientsList)
  26.         clientSocket.Close()
  27.         serverSocket.Stop()
  28.         self.msg("exit")
  29.         Console.ReadLine()
  30.  
  31.     def msg(self, mesg):
  32.         mesg.Trim()
  33.         Console.WriteLine(" >> " + mesg)
  34.  
  35.     def broadcast(self, msg, uName, flag):
  36.         enumerator = clientsList.GetEnumerator()
  37.         while enumerator.MoveNext():
  38.             Item = enumerator.Current
  39.             broadcastSocket = Item.Value
  40.             broadcastStream = broadcastSocket.GetStream()
  41.             if flag == True:
  42.                 broadcastBytes = Encoding.ASCII.GetBytes(uName + " says : " + msg)
  43.             else:
  44.                 broadcastBytes = Encoding.ASCII.GetBytes(msg)
  45.             broadcastStream.Write(broadcastBytes, 0, broadcastBytes.Length)
  46.             broadcastStream.Flush()
  47.  
  48.     class handleClinet(object):
  49.         def __init__(self):
  50.  
  51.         def startClient(self, inClientSocket, clineNo, cList):
  52.             self._clientSocket = inClientSocket
  53.             self._clNo = clineNo
  54.             self._clientsList = cList
  55.             ctThread = Threading.Thread()
  56.             ctThread.Start()
  57.  
  58.         def doChat(self): #Dim infiniteCounter As Integer
  59.             bytesFrom = Array.CreateInstance(Byte, 10024)
  60.             requestCount = 0
  61.             while (True):
  62.                 try:
  63.                     requestCount = requestCount + 1
  64.                     networkStream = self._clientSocket.GetStream()
  65.                     networkStream.Read(bytesFrom, 0, self._clientSocket.ReceiveBufferSize)
  66.                     dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
  67.                     dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
  68.                     self.msg("From client - " + self._clNo + " : " + dataFromClient)
  69.                     rCount = Convert.ToString(requestCount)
  70.                     self.broadcast(dataFromClient, self._clNo, True)
  71.                 except Exception, ex:
  72.                     self.MsgBox(ex.ToString)
  73.                 finally:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement