socket网络编程(网络编程-Socket)

socket网络编程
缘起:知识不能有短板
最近在工作中遇到了两例关于Socket的问题,由于这一方面存在短板,未曾使用过,导致在处理问题的过程中不够自信,有时候甚至出现了理解不到位的现象。这几天对这一块的知识进行了恶补,现在做一下总结。
首先明确一下定义:什么是socket?

明确一下Socket的使用场景
用于网络主机进程之间的通讯,典型应用比如聊天室。这时候就有点汗颜:自己之前也曾经研究过SingelR,实现了类似聊天室的功能,竟然不懂得socket。
Socket的实现:
Socket用于通讯,必然是有一个客户端和一个服务端。我们按照顺序来走一遍Socket的建立过程:
首先看一下服务端
创建socket连接:IP
绑定socket的端口:Port
开始监听这个端口:listen
客户端
创建socket连接,制定服务器的IP和Port
调用connect方法
服务端
调用accept()方法创建;连接
write或者read数据
客户端
write或者read数据
服务端、客户端
调用close()方法关闭连接

了解了这些,又复习一下OSI的七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层;
TCP/IP 的四层:物理层、网络层、传输层、应用层。
加上三次握手和四次挥手,希望以后不用怕Socket了。

socket网络编程相关文章