Csharp/C Sharp by API/System.Net.Sockets/TcpClient

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

new TcpClient( String ip, int port)

<source lang="csharp"> using System; using System.IO; using System.Net.Sockets; class MainClass {

 const int echoPort = 7;
 [STAThread]
 static void Main(string[] args)
 {
   using ( TcpClient tc = new TcpClient( "localhost", echoPort ) )
   {
     NetworkStream ns = tc.GetStream();
     StreamWriter sw = new StreamWriter( ns );
     StreamReader sr = new StreamReader( ns );
     sw.WriteLine( "test message" );
     sw.Flush();
     System.Console.WriteLine( sr.ReadLine() );
   }
 }

}


 </source>


TcpClient.Connect

<source lang="csharp"> using System; using System.Net; using System.Net.Sockets; using System.Text; class MainClass {

   [STAThread]
   static void Main(string[] args)
   {
       TcpClient MyClient = new TcpClient();
       MyClient.Connect("localhost", 10000);
       NetworkStream MyNetStream = MyClient.GetStream();
           
       if(MyNetStream.CanWrite && MyNetStream.CanRead)
       {
           Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there");
           MyNetStream.Write(sendBytes, 0, sendBytes.Length);
     
           byte[] bytes = new byte[MyClient.ReceiveBufferSize];
           MyNetStream.Read(bytes, 0, (int) MyClient.ReceiveBufferSize);
   
           string returndata = Encoding.ASCII.GetString(bytes);
           Console.WriteLine("This is what the host returned to you: " + returndata);
       }else if (!MyNetStream.CanRead) {
           Console.WriteLine("You can not write data to this stream");
           MyClient.Close();
       }else if (!MyNetStream.CanWrite)
       {             
           Console.WriteLine("You can not read data from this stream");
           MyClient.Close();
       }   
   }   

}


 </source>


TcpClient.GetStream()

<source lang="csharp"> /* C# Network Programming by Richard Blum Publisher: Sybex ISBN: 0782141765

  • /

using System; using System.Net; using System.Net.Sockets; using System.Text; public class TcpListenerSample {

  public static void Main()
  {
     int recv;
     byte[] data = new byte[1024];
     TcpListener newsock = new TcpListener(9050);
     newsock.Start();
     Console.WriteLine("Waiting for a client...");
     TcpClient client = newsock.AcceptTcpClient();
     NetworkStream ns = client.GetStream();
     string welcome = "Welcome to my test server";
     data = Encoding.ASCII.GetBytes(welcome);
     ns.Write(data, 0, data.Length);
     while(true)
     {
        data = new byte[1024];
        recv = ns.Read(data, 0, data.Length);
        if (recv == 0)
           break;
      
        Console.WriteLine(
                 Encoding.ASCII.GetString(data, 0, recv));
        ns.Write(data, 0, recv);
     }
     ns.Close();
     client.Close();
     newsock.Stop();
  }

}


 </source>