socket学习
TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的;然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多。C#通过提供的Socket API实现了对TCP/IP协议栈的封装,让实现C/S模型变得更加简单,对于入门TCP/IP协议学习十分有帮助。
Socket通讯实现参考标准的流程如图所示,
·
服务器工作:
1.创建Socket套接字,绑定指定host,并监听。
2.线程堵塞等待用户端请求,当客户端请求到达时建立连接。
3.连接建立完成后,读取请求并处理,然后将处理结果返回给客户端。
4. 服务器等待客户端关闭连接,连接关闭后,一次Socket通讯结束。
客户端工作:
1.创建Socket套接字, 建立连接,发送连接请求数据
2. 请求成功后,等待服务器返回响应
3.服务器回应成功后,处理数据,直到主动关闭连接。
了解了上述Socket通讯的主要过程,在结合C#网络编程的特性,就可以实现如下C/S服务器。客户端的实现比较简单,主要分四个步骤:
1.建立tcp连接(等同于socket 和 connect),处理连接失败状态
2.对于建立成功的连接,发送数据,并等待服务器返回
3.接收数据,输出到编辑框
4.关闭连接
UDP