大家都知道Java语言的强大功能
尤其在网络编程方面
于是
C#在网络编程方面也自然不甘落后于人
本文就向大家介绍一下C#下实现套接字(Sockets)编程的一些基本知识
以期能使大家对此有个大致了解
首先
我向大家介绍一下套接字的概念
套接字基本概念套接字是通信的基石是支持TCP/IP协议的网络通信的基本操作单元可以将套接字看作不同主机间的进程进行双向通信的端点它构成了单个主机内及整个网络间的编程界面套接字存在于通信域中通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念套接字通常和同一个域中的套接字交换数据(数据交换也可能穿越域的界限但这时一定要执行某种解释程序)各种进程使用这个相同的域互相之间用Internet协议簇来进行通信
套接字可以根据通信性质分类这种性质对于用户是可见的应用程序一般仅在同一类的套接字间进行通信不过只要底层的通信协议允许不同类型的套接字间也照样可以通信套接字有两种不同的类型流套接字和数据报套接字
套接字工作原理要通过互联网进行通信你至少需要一对套接字其中一个运行于客户机端我们称之为ClientSocket另一个运行于服务器端我们称之为ServerSocket根据连接启动的方式以及本地套接字要连接的目标套接字之间的连接过程可以分为三个步骤服务器监听客户端请求连接确认
所谓服务器监听是服务器端套接字并不定位具体的客户端套接字而是处于等待连接的状态实时监控网络状态
所谓客户端请求是指由客户端的套接字提出连接请求要连接的目标是服务器端的套接字为此客户端的套接字必须首先描述它要连接的服务器的套接字指出服务器端套接字的地址和端口号然后就向服务器端套接字提出连接请求
所谓连接确认是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求它就响应客户端套接字的请求建立一个新的线程把服务器端套接字的描述发给客户端一旦客户端确认了此描述连接就建立好了而服务器端套接字继续处于监听状态继续接收其他客户端套接字的连接请求