static void Main(string[] args) { MessageRecievedListener mrl = delegate(string s) { //TODO add code here }; chatServer.start(mrl); }
/// <summary> /// Starts the server going and taking connections /// </summary> public void start(MessageRecievedListener mrl) { if (running) { return; } myMRL = mrl; chatSenderThread = delegate(object o) { ChatServer cs = (ChatServer)o; while (!(cs.running && cs.clients.Count != 0)) { } ClientInfo ci = cs.clients.Last <ClientInfo>(); Socket s = ci.socket; byte[] name_bytes = new byte[bufferSize]; s.Receive(name_bytes); ci.name = Encoding.ASCII.GetString(ChatServer.noNulls(name_bytes)); name_bytes = Encoding.ASCII.GetBytes(ci.name + ": "); while (true) { try { byte[] bytes = new byte[bufferSize]; s.Receive(bytes); bytes = ChatServer.noNulls(bytes); string msg = Encoding.ASCII.GetString(bytes); //Console.WriteLine("Server Recieved bytes:"+msg); cs.myMRL(ChatServer.getTimeStamp() + " " + ci.name + ": " + msg); cs.broadcast(ChatServer.conCat(name_bytes, bytes), s); } catch (SocketException e) { //Console.WriteLine(e.StackTrace); } } }; MyServer.Listen(5); running = true; ParameterizedThreadStart receptions = delegate(object o) { ChatServer cs = (ChatServer)o; while (running) { cs.clients.Add(new ClientInfo(MyServer.Accept())); newChatThread(); } }; addThread(receptions); }
/// <summary> /// Starts the listener thread given /// </summary> /// <param name="mrl">The messager thread</param> public void start(MessageRecievedListener mrl) { ParameterizedThreadStart pts = delegate(object o) { ChatClient cc = (ChatClient)o; while (true) { string s = cc.recieve(); //Console.WriteLine("Client recieved bytes:"+s); mrl(s); } }; Thread t = new Thread(pts); t.Start(this); this.send(this.myName); }
public static void Main() { ChatServer server = new ChatServer(1341); //server.start(); ChatClient client = new ChatClient("144.118.118.68", 1341); MessageRecievedListener mrl = delegate(string s) { Console.WriteLine(s); }; client.start(mrl); Console.WriteLine("Type your text:"); while (true) { client.send(Console.ReadLine()); } }
public void start(MessageRecievedListener mrl, string username) { this.myName = username; start(mrl); }
public static void Main() { Console.WriteLine("Server or client?"); string response = Console.ReadLine(); if (response.ToUpper() == "SERVER") { Console.WriteLine("Port?"); int port = getInt(); ChatServer cs = new ChatServer(port); MessageRecievedListener mrl = delegate(string s) { Console.WriteLine(s); }; cs.start(mrl); Console.WriteLine("Server started on port " + port + " type \"/quit\" to close."); while (true) { response = Console.ReadLine(); if (response.ToUpper() == "/QUIT") { cs.stop(); Environment.Exit(0); break; } else { cs.broadcast("SERVER ADMIN:" + response); } } } else if (response.ToUpper() == "CLIENT") { Console.WriteLine("IP?"); System.Net.IPAddress ip = getIP(); while (ip == null) { Console.WriteLine("Invalid input"); ip = getIP(); } Console.WriteLine("Port?"); int port = getInt(); ChatClient cc = new ChatClient(ip, port); Console.WriteLine("Connected to server. Do you want to use a username? Y/N"); response = Console.ReadLine(); MessageRecievedListener mrl = delegate(string str) { Console.WriteLine(str); }; if (response.ToUpper() == "Y" || response.ToUpper() == "YES") { Console.WriteLine("Well type it in then."); cc.start(mrl, Console.ReadLine()); } else { cc.start(mrl); } Console.WriteLine("Chat is now open."); response = Console.ReadLine(); while (!(response.ToUpper() == "/QUIT")) { cc.send(response); response = Console.ReadLine(); } Environment.Exit(0); } }