TcpClient类

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

TcpListener类:

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

测试代码:

 //Client

 static void Main(string[] args)
{
try
{
//建立TcpClient对象,并且连接到4001上的localhost
TcpClient newclient = new TcpClient();
newclient.Connect("127.0.0.1", );
NetworkStream stm = newclient.GetStream();
//利用NetworkStream对象发送数据
//byte[] sendBytes = Encoding.ASCII.GetBytes("Data is coming" + "here"); string strToSend = Console.ReadLine();
byte[] sendBytes = Encoding.ASCII.GetBytes(strToSend); stm.Write(sendBytes, , sendBytes.Length);
//关闭TcpClient
newclient.Close();
Console.ReadLine();
}
catch(Exception e)
{
//输出异常信息
Console.WriteLine(e.ToString());
Console.WriteLine("Data has not been received");
Console.ReadLine();
}
}
 //Server

 static void Main(string[] args)
{
//服务器简单的侦听器编写
try
{
//创建TcpListener对象,侦听端口4001,用Start()方法进行侦听
TcpListener listener = new TcpListener();
listener.Start();
//AcceptTcpClient()方法接受一个连接请求,返回一个TcpClient,使用它的GetStream方法来创建NetworkStream对象
TcpClient tc = listener.AcceptTcpClient();
NetworkStream stm = tc.GetStream();
byte[] redBuf = new byte[];
//用Read()方法读取数据
stm.Read(redBuf, , );
//显示数据
Console.WriteLine(Encoding.ASCII.GetString(redBuf));
stm.Close();
Console.ReadLine();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
Console.ReadLine();
}
}

TcpClient类与TcpListener类的更多相关文章

  1. winform网络编程之TcpClient类,TcpListener类和UdpClient类

    TcpClient类和TcpListener类 (1)TcpClient的用途: 用于在同步阻止模式下通过网络来链接.发送和接受流数据,在此情况下,必须有侦听此连接的请求,而侦听的任务就交给TcpLi ...

  2. TcpListener 类

    构造函数       名称 说明 TcpListener(IPAddress, Int32) 新实例初始化 TcpListener 类用于侦听传入的连接尝试在指定的本地 IP 地址和端口号. TcpL ...

  3. JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  4. 【转】UML类图与类的关系详解

    UML类图与类的关系详解   2011-04-21 来源:网络   在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...

  5. Java如何解决脆弱基类(基类被冻结)问题

    概述  大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系).实际上80%的代码应该完全用interfaces写,而不是通过extends.“JAVA设计模式”一书详细阐述了怎样用 ...

  6. 类A have-a 类B,类B访问类A public 成员

    需求是类A中包含类B,而类B又需要访问类A的public属性的成员. 首先类B中要访问类A的属性,那么对于类B而言,我们必须要知道有类A这个类,所以在类B的具体实现之前我们需要前向声明类A. 对于类A ...

  7. UML(一) 类图及类间关系

    原创文章,同步发自作者个人博客,http://www.jasongj.com/uml/class_diagram/ UML类图 UML类图介绍 在UML 2.*的13种图形中,类图是使用频率最高的UM ...

  8. JAVA正则表达式:Pattern类与Matcher类详解(转)

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  9. C# 根据类名称创建类示例

    //获得类所在的程序集名称(此处我选择当前程序集) string bllName = System.IO.Path.GetFileNameWithoutExtension(System.Reflect ...

随机推荐

  1. <实训|第六天>偷偷让新手的Linux无限重启附linux主机名称不是随便乱改的!

    先说个事情:这几天我正在忙一个项目的设计,8月1号之前要弄出来,所以每天都要弄到很晚,可能更新就有点跟不上了,不过我如果有时间的话,我就更新,没时间的话,我会在8月1号之后统一更新出来,希望大家谅解! ...

  2. 项目分享五:H5图片压缩与上传

    一.简介 图片的压缩与上传,是APP里一个很常用的功能.我们来年看 ChiTuStore 是怎样做的.相关文件 App/Module/User/UserInfo.html,App/Module/Use ...

  3. Java关键字this、super使用总结

    版权声明:原创作品,如需转载,请与作者联系.否则将追究法律责任. 作者:熔岩日期:2007-03-01MSN :leizhimin@126.com声明:原创作品,未经授权,谢绝转载! 好久没有对所学知 ...

  4. C# WinForm捕获全局异常

    网上找的C# WinForm全局异常捕获方法,代码如下: static class Program { /// <summary> /// 应用程序的主入口点. /// </summ ...

  5. wsdl说明书

    WSDL文档的结构实例解析 <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns ...

  6. jQuery能做些什么

    来源于: Learning jQuery, 4th Edition What jQuery does: 1. Access elements in a document; $('div.content ...

  7. Android Studio 解决更新慢的问题

    Android Studio 解决更新慢的问题 最近在一些群里有伙伴们反应工具更新慢,由于国内网络对google限制的原因,android studio更新一直是个老大难的问题,为了,提高sdk下载的 ...

  8. [转]javascript Date format(js日期格式化)

    方法一:这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q)  ...

  9. poj2774 后缀数组2个字符串的最长公共子串

    Long Long Message Time Limit: 4000MS   Memory Limit: 131072K Total Submissions: 26601   Accepted: 10 ...

  10. Web前端性能优化教程06:减少DNS查找、避免重定向

    本文是Web前端性能优化系列文章中的第六篇,主要讲述内容:减少DNS查找.避免重定向.完整教程可查看:  一.减少DNS查找 基础知识 DNS(Domain Name System): 负责将域名UR ...