コード例 #1
0
ファイル: ChatForm.cs プロジェクト: AlexMoiseev69/Chat
 public ChatForm(bool isServer = false, UserInfo userInfo=null)
 {
     InitializeComponent();
     this.isServer = isServer;
     if (isServer)
     {
         socketServer = new SocketServer(8080, this);
         socketServer.start();
         ChatRichTextForm.AppendText("Server start\n");
         userChat = new UserChat(new UserInfo("server"), this);
     }
     else
     {
         userChat = new UserChat(userInfo, this);
         userChat.sendMessageObject(new TcpMessage(TcpMessage.TypeMsg.Login, "", userInfo.getName()));
         //userChat.sendMessage(userInfo.getName());
         Thread backgroundThread = new Thread(new ThreadStart(userChat.listenNewMessage));
         backgroundThread.Start();
     }
 }
コード例 #2
0
ファイル: Login.cs プロジェクト: AlexMoiseev69/Chat
 private void button1_Click(object sender, EventArgs e)
 {
     TcpClient clientSocket = new TcpClient();
     try
     {
         clientSocket.Connect(address.Text, Int32.Parse(port.Text));
         UserInfo userInfo = new UserInfo(loginText.Text, clientSocket);
         ChatForm chatForm = new ChatForm(false, userInfo);
         chatForm.Show();
         this.Hide();
     }
     catch (ArgumentNullException ane)
     {
         MessageBox.Show("ArgumentNullException : {0}", ane.ToString());
     }
     catch (SocketException se)
     {
         MessageBox.Show("SocketException : {0}", se.Message);
     }
     catch (Exception se)
     {
         MessageBox.Show("Unexpected exception : {0}", se.ToString());
     }
 }
コード例 #3
0
ファイル: Client.cs プロジェクト: Jaex/Chat
 private void Initialize()
 {
     isConnected = true;
     UserInfo = new UserInfo("[Unknown]");
     IP = client.Client.RemoteEndPoint.ToString();
     BeginRead();
 }
コード例 #4
0
ファイル: ServerManager.cs プロジェクト: Jaex/Chat
 protected void OnUserDisconnected(UserInfo userInfo)
 {
     if (UserDisconnected != null)
     {
         UserDisconnected(userInfo);
     }
 }
コード例 #5
0
ファイル: ServerManager.cs プロジェクト: Jaex/Chat
        public bool SendTo(UserInfo userInfo, PacketInfo packetInfo)
        {
            if (userInfo != null && !string.IsNullOrEmpty(userInfo.Nickname))
            {
                Client client = Clients.FirstOrDefault(x => x.UserInfo.Nickname == userInfo.Nickname);

                if (client != null)
                {
                    client.SendPacket(packetInfo);
                    return true;
                }
            }

            return false;
        }
コード例 #6
0
ファイル: ClientManager.cs プロジェクト: Jaex/Chat
 private void OnUserListReceived(UserInfo[] userList)
 {
     if (UserListReceived != null) UserListReceived(userList);
 }
コード例 #7
0
ファイル: ClientManager.cs プロジェクト: Jaex/Chat
 private void OnUserDisconnected(UserInfo info)
 {
     if (UserDisconnected != null) UserDisconnected(info);
 }
コード例 #8
0
ファイル: MainForm.cs プロジェクト: Jaex/Chat
 private void server_UserDisconnected(UserInfo userInfo)
 {
     InvokeForm(() =>
     {
         ListViewItem lvi = ServerFindUser(userInfo);
         if (lvi != null) lvi.Remove();
     });
 }
コード例 #9
0
ファイル: MainForm.cs プロジェクト: Jaex/Chat
 private void server_UserConnected(UserInfo userInfo)
 {
     InvokeForm(() =>
     {
         lvServerUsers.Items.Add(userInfo.Nickname);
     });
 }
コード例 #10
0
ファイル: MainForm.cs プロジェクト: Jaex/Chat
        private ListViewItem ServerFindUser(UserInfo userInfo)
        {
            foreach (ListViewItem lvi in lvServerUsers.Items)
            {
                if (lvi.Text == userInfo.Nickname) return lvi;
            }

            return null;
        }
コード例 #11
0
ファイル: MainForm.cs プロジェクト: Jaex/Chat
 private void client_UserListReceived(UserInfo[] userList)
 {
     InvokeForm(() =>
     {
         foreach (UserInfo userInfo in userList)
         {
             if (!lvClientUsers.Items.Cast<ListViewItem>().Any(x => x.Text == userInfo.Nickname))
             {
                 lvClientUsers.Items.Add(userInfo.Nickname);
             }
         }
     });
 }
コード例 #12
0
ファイル: MainForm.cs プロジェクト: Jaex/Chat
 private void client_UserConnected(UserInfo userInfo)
 {
     InvokeForm(() =>
     {
         if (!lvClientUsers.Items.Cast<ListViewItem>().Any(x => x.Text == userInfo.Nickname))
         {
             lvClientUsers.Items.Add(userInfo.Nickname);
         }
     });
 }