public void StartAccepting() { Socket listenSocket = null; var builder = new StringBuilder(); var bytesReceived = 0; var lengthBuffer = new byte[1]; while (true) { listenSocket = ObjSocket.Accept(); Console.Write("New Connection: "); bytesReceived = listenSocket.Receive(lengthBuffer); var buffer = new byte[lengthBuffer[0]]; bytesReceived = listenSocket.Receive(buffer); builder.Clear(); builder.Append(Encoding.ASCII.GetString(buffer), 0, bytesReceived); Console.WriteLine(builder); ClientList.Add(listenSocket, Encoding.ASCII.GetString(buffer)); ThreadList.Add(listenSocket, new Thread(delegate() { Server.MessageHandler(this, listenSocket); })); ThreadList[listenSocket].Start(); } }
public override void Disconnect() { Console.WriteLine("Disconnecting..."); InnerThread.Abort(); ObjSocket.Shutdown(SocketShutdown.Both); ObjSocket.Close(); }
public void StartWorking() { try { ObjSocket.Listen(ClientCount); Console.WriteLine("Listening..."); StartAccepting(); } catch (Exception exception) { throw exception; } }
public override void SendMessage(string message) { try { ObjSocket.Send(new byte[1] { (byte)message.Length }); ObjSocket.Send(Encoding.ASCII.GetBytes(message)); } catch (Exception exception) { Console.WriteLine("Message send failed with message: {0}", exception.Message); } }
public override void ReceiveMessage() { var str = new StringBuilder(); var length = new byte[1]; var bytesReceived = ObjSocket.Receive(length); var buffer = new byte[length[0]]; bytesReceived = ObjSocket.Receive(buffer); str.Clear(); str.Append(Encoding.ASCII.GetString(buffer), 0, bytesReceived); Console.Write("{0}: ", str); bytesReceived = ObjSocket.Receive(length); buffer = new byte[length[0]]; bytesReceived = ObjSocket.Receive(buffer); str.Clear(); str.Append(Encoding.ASCII.GetString(buffer), 0, bytesReceived); Console.WriteLine(str); Client.DrawSeparator(); }
public override void Connect(string ipString, int port) { IPEndPoint destPoint = new IPEndPoint(IPAddress.Parse(ipString), port); try { ObjSocket.Connect(destPoint); ObjSocket.Send(new byte[1] { (byte)NickName.Length }); ObjSocket.Send(Encoding.ASCII.GetBytes(NickName)); } catch (Exception exception) { Console.WriteLine(exception.Message); } finally { Console.WriteLine("Connection established"); InnerThread = new Thread(new ThreadStart(MessageHandler)); InnerThread.Start(); } }
public override void StopWorking() { ObjSocket.Shutdown(SocketShutdown.Both); ObjSocket.Close(); }