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

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

new TcpClient( String ip, int port)

   
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() );
    }
  }
}


TcpClient.Connect

  
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();
        }   
    }   
}


TcpClient.GetStream()

  
/*
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();
   }
}