zoukankan      html  css  js  c++  java
  • TcpClient类与TcpListener类

    TcpClient类

     1        //构造方法1
     2             TcpClient t = new TcpClient();
     3             t.Connect("www.163.com", 8000);
     4             //构造方法2
     5             IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.10.27"),8000);
     6             TcpClient t2 = new TcpClient(iep);
     7             t2.Connect("www.163.com", 8000);//也可以使用Connect方法与远程设备连接
     8             //构造方法3
     9             TcpClient t3 = new TcpClient("www.163.com", 8000);
    10 
    11 
    12             //常用方法
    13             //Close();      关闭TCP连接
    14             //Connect();    用于与远程设备建立TCP连接
    15             //GetStream     返回用于发送和接收数据的NetworkStream
    16             //GetType()     获取当前实例的Type
    17 
    18             //常用属性
    19             //Availabe      获取已经从网络接收且可供读取的数据量
    20             //Client        获取或设置基础Socket
    21             //Connected     获取一个值,该值指示TcpClient的基础Socket是否已连接到远程主机
    22             //ExclusiveAddressUse   获取或设置Boolean值,该值指定TcpClient是否只允许一个客户端使用端口
    23             //LingerState   得到或者设置套接字保持时间
    24             //NoDelay       得到或者设置套接接字保持的时间
    25             //ReceiverBufferSize        得到或设置TCP接收缓冲区的尺寸
    26             //ReceiveTimeout        得到或设置套接字接收数据的超时时间
    27             //SendBufferSize    得到或者设置TCP发送缓冲区的大小
    28             //SendTimeOut       得到或者设置套接字发送数据的超时时间

    TcpListener类:

     1          //构造函数
     2             //TcpListener(int port);
     3             //TcpListener(IPEndPoint ipe);
     4             //TcpListener(IPAddress addr,int port);
     5             //至少需要一个参数,那就是端口号
     6 
     7             //TcpListener类的方法
     8             //AcceptSocket  从端口处接收一个连接并赋予它Socket对象
     9             //AcceptTcpClient   从端口处接收一个连接并赋予它TcpClient对象
    10             //Pending       确定是否有挂起的连接请求
    11             //Start         开始侦听传入的连接请求
    12             //Stop          关闭侦听器
    13             
    14 
    15             //生成TcpListener对象并收听流入连接的过程代码如下:
    16             //初始化对象
    17             TcpListener Server = new TcpListener(IPAddress.Parse("192.168.1.1"), 8000);
    18             //开始监听端口
    19             Server.Start();
    20             //这个对象接收从客户端发送来的数据
    21             TcpClient newclient = Server.AcceptTcpClient();

    测试代码:

     1 //Client
     2 
     3 static void Main(string[] args)
     4         {
     5             try
     6             {
     7                 //建立TcpClient对象,并且连接到4001上的localhost
     8                 TcpClient newclient = new TcpClient();
     9                 newclient.Connect("127.0.0.1", 4001);
    10                 NetworkStream stm = newclient.GetStream();
    11                 //利用NetworkStream对象发送数据
    12                 //byte[] sendBytes = Encoding.ASCII.GetBytes("Data is coming" + "here");
    13 
    14                 string strToSend = Console.ReadLine();
    15                 byte[] sendBytes = Encoding.ASCII.GetBytes(strToSend);
    16 
    17                 stm.Write(sendBytes, 0, sendBytes.Length);
    18                 //关闭TcpClient
    19                 newclient.Close();
    20                 Console.ReadLine();
    21             }
    22             catch(Exception e)
    23             {
    24                 //输出异常信息
    25                 Console.WriteLine(e.ToString());
    26                 Console.WriteLine("Data has not been received");
    27                 Console.ReadLine();
    28             }
    29         }
     1 //Server
     2 
     3 static void Main(string[] args)
     4         {
     5             //服务器简单的侦听器编写
     6             try
     7             {
     8                 //创建TcpListener对象,侦听端口4001,用Start()方法进行侦听
     9                 TcpListener listener = new TcpListener(4001);
    10                 listener.Start();
    11                 //AcceptTcpClient()方法接受一个连接请求,返回一个TcpClient,使用它的GetStream方法来创建NetworkStream对象
    12                 TcpClient tc = listener.AcceptTcpClient();
    13                 NetworkStream stm = tc.GetStream();
    14                 byte[] redBuf = new byte[50];
    15                 //用Read()方法读取数据
    16                 stm.Read(redBuf, 0, 50);
    17                 //显示数据
    18                 Console.WriteLine(Encoding.ASCII.GetString(redBuf));
    19                 stm.Close();
    20                 Console.ReadLine();
    21             }
    22             catch(Exception e)
    23             {
    24                 Console.WriteLine(e.ToString());
    25                 Console.ReadLine();
    26             }
    27         }
  • 相关阅读:
    矢量坐标矩阵 为了方便求叉乘
    力矩 是形容物理转动效果的量
    科式力 河流右边冲刷严重
    科式力
    证明科式力 coriolis acceleration
    叉乘的求导证明
    spring webFlux的认识
    [转] DB2错误代码说明
    MySQL事务及其实现
    MySQL基础架构之查询语句执行流程
  • 原文地址:https://www.cnblogs.com/zhaotianff/p/5532079.html
Copyright © 2011-2022 走看看