Beispiel #1
0
        private static void ReceiveCallBack(IAsyncResult AR)
        {
            Socket sock = (Socket)AR.AsyncState;
            int    received;

            try
            {
                received = sock.EndReceive(AR);
            }
            catch (SocketException e)
            {
                Chat.addText("Lost connection to server.");
                frmMain.isSignedIn = false;
                return;
            }

            ServerConnect._serverSocket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallBack), ServerConnect._serverSocket);

            byte[] data = new byte[received];
            Array.Copy(_buffer, data, received);

            Message msg = serial.unserialMsg(_buffer);

            if (msg.type == msgType.chat)
            {
                Chat.addMessage(msg);
            }
            else if (msg.type == msgType.server)
            {
                ServerMessage.handleMessage(msg);
            }
        }
Beispiel #2
0
        public static void login(User user)
        {
            Chat.addText("Connecting to server...");
            int conAttempts = 0;

            while (!_serverSocket.Connected)
            {
                try
                {
                    conAttempts++;
                    _serverSocket.Connect(serverIP, serverPort);
                    Chat.addText("Connected to server!");
                    ChatListener.StartListener();
                }
                catch (SocketException e)
                {
                    if (conAttempts >= loginTimeout)
                    {
                        frmMain.isSignedIn = false;
                        Chat.addText("Connection failed.");
                        return;
                    }
                }
            }
        }
Beispiel #3
0
        public static void handleMessage(Message msg)
        {
            switch (msg.servResponse)
            {
            case serverResponse.loginFail:
                frmMain.isSignedIn = false;
                Chat.addText(msg.data);
                break;

            case serverResponse.loginSucess:
                frmMain.isSignedIn = true;
                Chat.addText(msg.data);
                break;
            }
        }
Beispiel #4
0
        public static void StartListener()
        {
            ServerConnect._serverSocket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallBack), ServerConnect._serverSocket);

            if (!frmMain.isSignedIn)
            {
                ChatterDLL.Message loginReq = new ChatterDLL.Message();
                loginReq.type     = msgType.login;
                loginReq.sender   = Chat.localUser;
                loginReq.receiver = new User()
                {
                    username = "******"
                };


                ChatSender.sendMessage(loginReq);
                Chat.addText("Signing in...");
            }
        }