private void Client_Load(object sender, EventArgs e) { Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp); // Start connecting on load IAsyncResult result = socket.BeginConnect("cse3461-server.cloudapp.net", 34567, null, null); // Wait up to 5 seconds bool success = result.AsyncWaitHandle.WaitOne(5000, true); // Exit if failed if (!success) { socket.Close(); MessageBox.Show("Unable to Connect", "Unable to connect", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); return; } // success, so create a transceiver and hook up events _xcvr = new MessageXcvr(socket); _xcvr.Disconnected += _xcvr_Disconnected; _xcvr.MessageReceived += _xcvr_MessageReceived; }
/// <summary> /// Creates new client with a socket and a server reference /// </summary> /// <param name="socket"></param> /// <param name="server"></param> public Client(Socket socket, Server server) { // Create a new transceiver _xcvr = new MessageXcvr(socket); // Setup to receive events _xcvr.MessageReceived += _xcvr_MessageReceived; _xcvr.Disconnected += _xcvr_Disconnected; // save the server _server = server; // initially in no group _group = null; // Send the connected client the server information _xcvr.Tx(new Message() { ServerInfo = new ServerInfo() { Groups = _server.Groups.Select(x => x.Name).ToArray() } }); }