Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
wrproject

Váriavel com espaços a mais

Recommended Posts

wrproject

Boas pessoal eu tenho uma aplicação cçiente-servidor.

O cliente quando conecta envia a string "wrproject" para o servidor

O servidor recebe a string e mostra no ecrã.

O problema é que alem do servidor mostrar a a string "wroject" colocas espaçosa mais.

Ja tentei usar o trim() e não funcionou.

Embaixo o codigo do cliente e servidor.

CLIENTE:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Collections;
namespace ClienteTeste
{
    class Program
    {
        static void Main(string[] args)
        {
            IPAddress ip=IPAddress.Parse("127.0.0.1");
            TcpClient cl = new TcpClient();
          
            
            try
            {
                cl.Connect(ip, 500);
                Console.WriteLine("Conectado");
                string s="wrproject";
                byte[] data;
                data = new System.Text.ASCIIEncoding().GetBytes(s);
                Console.WriteLine(data.Length);
                cl.GetStream().Write(data,0,data.Length);
                
            }
            catch (Exception)
            {
                Console.WriteLine("Erro ao conectar");
            }
             
            Console.ReadKey();
        }
    }
}

SERVIDOR:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Collections;
using System.Threading;
namespace ICPServer
{
    class ChatClient
    {

        //cliente
        TcpClient _client;

        //nick
        String nick;

        //lista de utilizadores
        public static Hashtable AllClients = new Hashtable();


        //variavel que servirá para o utilizador enviar ou receber dados
        byte[] data;
        
        //Recber nick
        bool ReceiveNick = true;

        //o ip do cliente
        public string _clientIP;

        public ChatClient(TcpClient client)
        {
            _client = client;

            //get The IP
            _clientIP = _client.Client.RemoteEndPoint.ToString();

            //Add this ip to the hashtable
            AllClients.Add(_clientIP, this);

            //data = new byte[_client.ReceiveBufferSize];
            _client.GetStream();
            data = new byte[_client.ReceiveBufferSize];
            //começa uma leitura assincrona
            _client.GetStream().BeginRead(data, 0, data.Length, ReceiveMessage, null);
        }

        

        //Método assincrono para receber clientes

        public void ReceiveMessage(IAsyncResult ar)
        {

            int bytesRead = 0;
            char[] charsToTrim = {' '};

            try
            {

                lock (_client.GetStream())
                {
                    bytesRead = _client.GetStream().EndRead(ar);
                    //_client.GetStream().Flush();

                }


                //se foram recebidos daos,o servidor irá tratar do processamento dos dados
                if (bytesRead > 0)
                {
                    
                    if(ReceiveNick)
                    {
                        string _tempnick = new System.Text.ASCIIEncoding().GetString(data);
                        string s = _tempnick.Trim();
                    Console.Write(s+" "+s.Length);
                    ReceiveNick = false;
                    //_client.GetStream().Flush();
                    }
                  }


                //continue reading from client
                lock (_client.GetStream())
                {

                    Int32 buffersize = System.Convert.ToInt32(_client.ReceiveBufferSize);
                    _client.GetStream().BeginRead(data, 0, buffersize, ReceiveMessage, null);


                }

            }//fim try
            catch (Exception)
            {
                Console.WriteLine("Cliente disconectou");
            }
            //fim excepção

        }

    }
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.