TCP编程(二)
来源:互联网 发布:知乎华为软件开发面试 编辑:程序博客网 时间:2024/05/22 01:51
利用TCP开发程序时,.NET框架提供两种工作方式,一种是同步(Synchronization)工作方式,另一种是异步(Asynchronous)工作方式。
同步工作方式是指利用TCP编写的程序执行到监听或接受语句时,在未完成当前工作(侦听到连接请求或收到对方发来的数据)前不再继续往下执行,线程处于阻塞状态,知道该语句完成相应的工作后才继续执行下一条语句。
异步工作方式是指程序执行到监听或接受语句时,不论当前工作是否完成,都会继续往下执行。
与同步工作方式和异步工作方式相对应,利用Socket类进行编程时,系统也提供相应的方法,分别称为同步套接字编程和异步套接字编程。.NET框架专门提供了两个类:TcpClient类和TcpListener类,这两个类与套接字一样也分有同步和异步工作方式及其对应方法。
C#中的TCP编程
.NET对套接字进行封装TcpClient类和TcpListener类封装在System.Net.Sockets命名空间下。但是要注意,TcpClient类和TcpListener类只支持标准协议编程。如果希望编写非标准协议程序,只能使用套接字来实现。
TcpListener类用于监听客户端连接请求,TcpClient类用于提供本地主机和远程主机的连接信息。
TcpListener类
TcpListener类用于监听和接受传入的连接请求。该类的构造函数常用的有两种重载形式:
TcpListener(IPEndPoint iep)//在指定的IP地址与端口号监听客户端连接请求,iep包含本机的IP地址与端口号
TcpListener(IPAddress localAddr,int port)//直接指定本机IP地址和端口,并通过指定的IP端口监听传入连接请求。如果本机IP指定为IPAddress.Any端口为0则系统自动分配IP地址和端口号
TcpListener类的常用方法
TcpClient类
该类主要用于客户端编程,TcpClient的构造函数有以下四种重载形式:
TcpClient tcpClient =new TcpClient();//TcpClient()该构造函数创建一个默认的TcpClient对象,并自动分配本机(客户端)IP地址和端口号。tcpClient.Connect("www.abcd.com",518);//利用此构造函数创建对象后,还必须调用Connect方法与服务器建立连接。
TcpClient tcpClient=new TcpClient(AddressFamily.InterNetwork);//自动分配本机(客户端)IP地址和端口号,但是使用AddressFamily枚举指定使用哪种网络协议。tcpClient.Connect("www.abcd.com",518);//创建该对象后,还必须调用Connect方法与服务器建立连接。
IPAddress[] address=Dns.GetHostAddress (Dns.GetHostName());IPEndPoint iep= new IPEndPoint (address[0],518);TcpClient tcpClient =new TcpClient(iep);//该构造函数的参数iep指定本机(客户端)IP地址和端口号,当客户端有一个以上的IP地址时,而且程序员希望直接指定IP地址和端口号,可以使用这种方式。tcpClient.Connect("www.abcd.com",518);//创建该对象后,还必须调用Connect方法与服务器建立连接。</span>
TcpClient tcpClient =new TcpClient("www.abcd",518);//TcpClient(string hostname,int port)参数中的hostname表示要连接的远程主机DNS名,port表示要连接的远程主机的端口号</span>
TcpClient类的常用属性
TcpClient类的常用方法
0 0
- TCP编程(二)
- 网络编程TCP(二)
- TCP/IP 网络编程(二)
- Linux 网络编程(二)TCP
- Android网络编程TCP、UDP(二)
- Android网络编程TCP、UDP(二)
- socket编程(二)TCP cpp
- Linux TCP Socket编程(二)
- 网络编程(二) TCP报头
- TCP/IP网络编程(二)
- 网络编程TCP(二)
- Java网络(Socket)编程小记二 TCP编程
- Linux网络编程(二) 基本TCP套接字编程
- linux网络编程(二)——TCP编程
- java网络编程(二) 客户端和服务端(TCP)
- UNIX网络编程--传输层:TCP、UDP、SCTP(二)
- Linux TCP 服务器编程(二):简单的并发服务器
- (二)Linux网络编程--初等网络函数介绍(TCP)
- Unique Binary Search Trees--独特的二叉树个数(重)
- 提取字符串的数字和非数字字符
- osx下的parallel
- 模式识别中机器学习算法研究
- C++游戏开发需要阅读的书籍 (转)
- TCP编程(二)
- Remove Duplicates from Sorted List --已出有序链表中的重复元素
- 选择排序和冒泡排序
- DOS命令将黑框中查询到的信息保存到TXT等文件中
- Remove Nth Node From End of List --移除链表中的倒数第k个元素
- andriod API文档打不开 google打不开
- 进制转换问题
- Java的串行化
- 无向图的连通分支