C# TCP Receive probleem

Status
Niet open voor verdere reacties.

cuperuskevin

Gebruiker
Lid geworden
18 nov 2011
Berichten
113
Hallo mensen,

Dit is mijn code:
Code:
try
            {
                TcpListener myList=new TcpListener(IPAddress.Any, 8182);
    
                myList.Start();

                while (true)
                {
                    Socket s = myList.AcceptSocket();
                    
                    byte[] b = new byte[100];
                    int k = s.Receive(b);
                    for (int i = 0; i < k; i++)
                    {
                        char lol = Convert.ToChar(b[i]);
                        string hoi = Convert.ToString(lol);


                        //Console.Write(Convert.ToChar(b[i]));
                    }
                    
                    ASCIIEncoding asen = new ASCIIEncoding();
                    s.Send(asen.GetBytes("The string was recieved by the server."));
                    s.Close();
                }
                myList.Stop();
            }
            catch
            {
                return;
            }

het probleem is

Code:
for (int i = 0; i < k; i++)
                    {
                        char lol = Convert.ToChar(b[i]);
                        string hoi = Convert.ToString(lol);


                        //Console.Write(Convert.ToChar(b[i]));
                    }

ik kan geen string ervan maken kunnen jullie dat aub voor mij fixen... asl jullie mij niet snappen vraag het dan ff
 
byte [] dBytes = ...
string str;
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
str = enc.GetString(dBytes);

iets in die geest ?
 
Zou u aub de hele code willen copieern en dan editen:$ want ik weet niet waar ik het moet neerzetten!
danku
 
heb even snel een client/server in elkaar gezet:

[cpp]

//server
static void Main(string[] args)
{
TcpListener server = new TcpListener(IPAddress.Any, 8081);

server.Start();

while (true)
{
Socket s = server.AcceptSocket();

byte[] b = new byte[100];
int sizeRecieved = s.Receive(b);
Console.WriteLine(ASCIIEncoding.ASCII.GetString(b));
s.Close();

}
}

[/cpp]

[cpp]
//client
static void Main(string[] args)
{
TcpClient client = new TcpClient();

client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8081));

NetworkStream stream = client.GetStream();

byte[] buffer = ASCIIEncoding.ASCII.GetBytes("Testing");

stream.Write(buffer, 0, buffer.Length);
stream.Flush();

Console.ReadLine();

}

[/cpp]

zoek alleen wel even een goede tutorial op hoe je ze moet gebruiken. op dit moment wordt namelijk niet afgehandeld wat er gebeurt als je meer dan 100 bytes aan data stuurt. dit gaat in dit scenario verloren.

misschien dat je hier wat aan hebt http://www.switchonthecode.com/tutorials/csharp-tutorial-simple-threaded-tcp-server
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan