salas de chat para vários jogadores fáceis implementados em C #

salas de chat para vários jogadores fáceis implementados em C #

Apenas uma função de chat em grupo

o servidor

 

Copie o código

o sistema a utilizar; 
a usando o System.Collections.Generic; 
a usando o System.ComponentModel; 
a usando o System.Data; 
a usando o System.Drawing; 
a usando o System.Linq; 
a usando o System.Net; 
a usando as System.Net.Sockets; 
a usando o System.Text; 
a utilização do sistema. enfiando; 
a usando System.Threading.Tasks; 
a usando System.Windows.Forms; 

namespace FinalChatRoomClient 
{ 
    cliente classe parcial pública: Form 
    { 
        // cliente é responsável por receber dados enviados pelo fio de mensagens do servidor 
        o fio threadClient = null; 
        // cria cliente extremidade do soquete, o servidor de conexão responsável por 
        soquete SocketClient = null; 

        cliente pública () 
        { 
            InitializeComponent ();
            // verificar a caixa de texto fechado operação cross-fio
            = Para falsos TextBox.CheckForIllegalCrossThreadCalls; 
        } 

        private void start_Click (object sender, EventArgs e) 
        { 
            // obter o endereço IP do objeto na caixa de texto 
            o endereço IPAddress = IPAddress.Parse (txtIp.Text.Trim ()); 
            // Cria IP e compreendendo nó de rede objetos portas 
            IPEndPoint Endpoint = new new IPEndPoint (endereço, int.Parse (txtPort.Text.Trim ())); 
            // criar um socket de cliente, se conectar ao servidor responsável por 
            socketClient = novo socket (AddressFamily.InterNetwork, SocketType . Stream, ProtocolType.Tcp); 
            o try 
            { 
                // o cliente se conecta ao servidor 
            } 
            a captura (a SocketException EX) 
                socketClient.Connect (endpoint);
                ShowMsg ( "servidor de conexão do cliente com sucesso"); 
            de byte [] = arrMsg Encoding.UTF8.GetBytes (strMsg );
            { 
                ShowMsg ( "exceção de cliente do servidor de conexão:" + ex.Message); 
            } 
            o catch (Exception ex) 
            { 
                ShowMsg ( "exceção de servidor de conexão do cliente ocorre:" + ex.Message); 
            } 

            threadClient o Tópico novas novas = (receiveMsg) ; 
            threadClient.IsBackground = true; 
            threadClient.Start (); 
        } 

        private void btnSend_Click (Object sender, EventArgs e) 
        { 
            corda strMsg txtMsg.Text.Trim = (); 
            // String facilmente convertida em uma matriz binária de transmissão da rede 
            byte [] = new byte novo arrMsgSend [arrMsg.Length + 1.]; 
            arrMsgSend [0] = 0; // conjunto sinalizador de bit 0 representa o texto transmitidas 
            Buffer.BlockCopy (arrMsg, 0, arrMsgSend ,. 1, arrMsg.Length); 
            o try 
            { 
                socketClient.Send (arrMsgSend); 

                // envia uma caixa de texto da mensagem vazia mensagem 
                ; "this.txtMsg.Text =" 
            } 
            o engate (uma SocketException EX) 
            { 
                ; ": (+ ex.Message ShowMsg" excepção ocorre quando um cliente envia uma mensagem) 
            } 
            o engate (excepção EX) 
            { 
                enquanto ShowMsg (cliente envia uma mensagem " exceção: "+ ex.Message); 
            } 
        } 

        private void ShowMsg (string MSG) 
        {
            txtRecord.AppendText (MSG + "\ R & lt \ n-"); 
        }
 
        privada vazio receiveMsg () 
        { 
            o while (true) 
            { 
                // definição de uma mensagem recebida pelo buffer matriz de bytes (2M tamanho) 
                byte [] = arrMsgRev novo new byte [ 1024 * 1024 * 2]; 
                // os dados recebidos em arrMsgRev, e retorna um comprimento real dos dados recebidos 
                comprimento int = -1; 
                o try 
                { 
                    comprimento = socketClient.Receive (arrMsgRev); 
                } 
                a captura (um SocketException EX) 
                { 
                    ShowMsg ( "exceção ocorre quando um cliente recebe uma mensagem:" + ex.Message); 
                    break; 
                }
                a lingueta (excepção EX)
                o prendedor (excepção EX) 
                {
                    MessageBox.Show ( "exceção ocorre quando um cliente recebe uma mensagem:" + ex.Message); 
                    break; 
                } 

                // neste caso, todos os elementos do array (cada byte) são transformados em uma corda, a única verdadeiramente recebeu o servidor enviada alguns caracteres 
                Cadeia strMsgReceive = Encoding.UTF8.GetString (arrMsgRev, 0, comprimento); 
                Console.WriteLine (strMsgReceive); 
                ShowMsg (strMsgReceive); 
            } 
        } 
    } 
}

Copie o código

 

cliente

Copie o código

o sistema a utilizar; 
a usando o System.Collections.Generic; 
a usando o System.ComponentModel; 
a usando o System.Data; 
a usando o System.Drawing; 
a usando o System.Linq; 
a usando o System.Net; 
a usando as System.Net.Sockets; 
a usando o System.Text; 
a utilização do sistema. enfiando; 
a usando System.Threading.Tasks; 
a usando System.Windows.Forms; 

namespace FinalChatRoomClient 
{ 
    cliente classe parcial pública: Form 
    { 
        // cliente é responsável por receber dados enviados pelo fio de mensagens do servidor 
        o fio threadClient = null; 
        // cria cliente extremidade do soquete, o servidor de conexão responsável por 
        soquete SocketClient = null; 

        cliente público) ( 
        { 
            InitializeComponent ();
            // verificar a caixa de texto fechado operação cross-fio
            = Para falsos TextBox.CheckForIllegalCrossThreadCalls; 
        } 

        private void start_Click (object sender, EventArgs e) 
        { 
            // obter o endereço IP do objeto na caixa de texto 
            o endereço IPAddress = IPAddress.Parse (txtIp.Text.Trim ()); 
            // Cria IP e compreendendo nó de rede objetos portas 
            IPEndPoint Endpoint = new new IPEndPoint (endereço, int.Parse (txtPort.Text.Trim ())); 
            // criar um socket de cliente, se conectar ao servidor responsável por 
            socketClient = novo socket (AddressFamily.InterNetwork, SocketType . Stream, ProtocolType.Tcp); 
            o try 
            { 
                // o cliente se conecta ao servidor 
            } 
            a captura (a SocketException EX) 
                socketClient.Connect (endpoint);
                ShowMsg ( "servidor de conexão do cliente com sucesso"); 
            de byte [] = arrMsg Encoding.UTF8.GetBytes (strMsg );
            { 
                ShowMsg ( "exceção de cliente do servidor de conexão:" + ex.Message); 
            } 
            o catch (Exception ex) 
            { 
                ShowMsg ( "exceção de servidor de conexão do cliente ocorre:" + ex.Message); 
            } 

            threadClient o Tópico novas novas = (receiveMsg) ; 
            threadClient.IsBackground = true; 
            threadClient.Start (); 
        } 

        private void btnSend_Click (Object sender, EventArgs e) 
        { 
            corda strMsg txtMsg.Text.Trim = (); 
            // String facilmente convertida em uma matriz binária de transmissão da rede 
            byte [] = new byte novo arrMsgSend [arrMsg.Length + 1.]; 
            arrMsgSend [0] = 0; // conjunto sinalizador de bit 0 representa o texto transmitidas
            Buffer.BlockCopy (arrMsg, 0, arrMsgSend ,. 1, arrMsg.Length); 
            o try 
            { 
                socketClient.Send (arrMsgSend); 

                // caixa de texto da mensagem clara mensagem enviada 
                this.txtMsg.Text = ""; 
            } 
            a captura (a SocketException EX ) 
            { 
                ShowMsg ( "exceção ocorre quando um cliente envia uma mensagem:" + ex.Message); 
            } 
            o catch (Exception ex) 
            { 
                ShowMsg ( "exceção ocorre quando um cliente envia uma mensagem:" + ex.Message); 
            } 
        } 

        privada ShowMsg vazio (string MSG)  
        {
            txtRecord.AppendText (MSG + "\ R & lt \ n-"); 
        }

        vazio receiveMsg privada () 
        { 
            o while (true) 
            { 
                // definição de uma mensagem recebida pelo buffer matriz de bytes (2M tamanho) 
                byte [] = new byte novo arrMsgRev [1024 * 1024 * 2]; 
                // dados recebidos depósito arrMsgRev, e retorna um comprimento real dos dados recebidos 
                comprimento int = -1; 
                o try 
                { 
                    comprimento = socketClient.Receive (arrMsgRev); 
                } 
                a captura (um SocketException eX) 
                { 
                    ShowMsg ( "excepção ocorre quando um cliente recebe uma mensagem:" + ex .message); 
                    break; 
                }
                o prendedor (excepção EX) 
                { 
                    MessageBox.Show ( "excepção ocorre quando um cliente recebe uma mensagem:" + ex.Message); 
                    break; 
                } 

                // neste caso, todos os elementos da matriz (cada byte) são transformados em uma cadeia, mas a recepção reais enviados para o servidor apenas alguns caracteres 
                Cordas strMsgReceive = Encoding.UTF8.GetString (arrMsgRev, 0, comprimento); 
                Console.WriteLine (strMsgReceive); 
                ShowMsg (strMsgReceive); 
            } 
        } 
    } 
}

Copie o código

Publicado 17 artigos originais · Louvor obteve 224 · vista 290 000 +

Acho que você gosta

Origin blog.csdn.net/cxu123321/article/details/105063988
Recomendado
Clasificación