Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: C# Tcp Server ja Client

groovyb [09.04.2009 22:37:23]

#

C# [.Net 2.0, 3.0, 3.5]
Server ja Client Tcp protokollalla.

Server

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class Tcp_Server
{
   public static void Main()
   {
      int received;
      byte[] data = new byte[1024];
      IPEndPoint ipep = new IPEndPoint(IPAddress.Any,9050); //osoite ja porttimääritys

      Socket MySocket = new
          Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

      MySocket.Bind(ipep);
      MySocket.Listen(10);
      Console.WriteLine("Waiting for the client...");
      Socket client = MySocket.Accept();
      IPEndPoint clientep=(IPEndPoint)client.RemoteEndPoint;
      Console.WriteLine("Connected with {0} at port {1}",clientep.Address, clientep.Port);

      string Answer = "Ok";
      byte[] AnswerByte = new byte[1024];
      AnswerByte = Encoding.ASCII.GetBytes(Answer);
      string welcome = "Connected to Tcp_Server";
      data = Encoding.ASCII.GetBytes(welcome);
      client.Send(data, data.Length,
                        SocketFlags.None);
      while(true)
      {
         data = new byte[1024];
         received = client.Receive(data);
        client.Send(AnswerByte,AnswerByte.Length,SocketFlags.None);
         if (received == 0)
            break;

    Console.WriteLine(Encoding.ASCII.GetString(data,0,received));
         client.Send(data, recv, SocketFlags.None);
      }
      Console.WriteLine("Disconnected from {0}",
                        clientep.Address);
      client.Close();
      MySocket.Close();
   }
}

Client

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class Tcp_Client
{
   public static void Main()
   {
      byte[] data = new byte[1024];
      string input, stringData;
      IPEndPoint ipep = new IPEndPoint(
                      IPAddress.Parse("127.0.0.1"), 9050); //osoite ja portti mihin yhdistetään

      Socket server = new Socket(AddressFamily.InterNetwork,
                     SocketType.Stream, ProtocolType.Tcp);

      try
      {
         server.Connect(ipep);
      } catch (SocketException e)
      {
         Console.WriteLine("Unable to connect to server.");
         Console.WriteLine(e.ToString());
         return;
      }


      int recv = server.Receive(data);
      stringData = Encoding.ASCII.GetString(data, 0, recv);
      Console.WriteLine(stringData);

      while(true)
      {
         input = Console.ReadLine();
         if (input == "exit")
            break;
         server.Send(Encoding.ASCII.GetBytes(input));
         data = new byte[1024];
         recv = server.Receive(data);
         stringData = Encoding.ASCII.GetString(data, 0, recv);
         Console.WriteLine(stringData);
      }
      Console.WriteLine("Disconnecting from server...");
      server.Shutdown(SocketShutdown.Both);
      server.Close();
   }
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta