码迷,mamicode.com
首页 > 其他好文 > 详细

socket通信

时间:2018-09-03 17:18:18      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:相关   以太网   connect   其他   rpc   监听   自己   物理   部分   

我们毕竟不是网络工程师,所以我们对于Socket通信,只要大概的了解通信协议就可以了;

=》网络之间传输数据需要协议。所谓协议呢,就是一些的规定,这些规定就是为了减少资源浪费来达成的一个统一的标准。

=》网络七层:应用层、表示层、会话层、传输层、网络层、链路层、物理层;
=》网络五层:应用层、传输层、网络层、链路层、物理层。
=》一般因特网现在都是用的五层协议,把表示层与会话层的功能都交给了具体的应用程序来执行。做为开发人员我们主要要做的就是应用层,也就是应用程序这一层。

=》应用层(Http协议,FTP协议,SMTP协议)报文Message;
=》传输层(TCP协议,UDP协议)报文段Segment,为运行在不同主机上的应用程序进程间提供数据传输服务。通过套接字(Socket)实现;
TCP(传输控制协议):面向连接的、可靠(应用:ftp、smtp、http等都是基于TCP协议的);
UDP(用户数据报协议):无连接的、不可靠的(数据报)的应用,比如视频会议、网络电话、DNS解析。其速度快,能容忍部分数据丢失
=》网络层(IP协议):数据报datagram,把数据从一台主机移动到另一台主机,主机间通信。IP协议不可靠,有丢包;
=》链路层(以太网、WiFi、点对点)帧Frame,负责将数据报传递给下一个节点。不同的链路层有特定的链路层协议。一系列路由器、交换机;
=》物理层:负责把数据从一个字节一个字节的从一个节点移动到下一个节点,该层中的协议仍然与链路层相关。例如,以太网具有许多物理层协议,比如双绞铜线的、同轴电缆的、光线的。(每一层都只考虑自己不关心其他)

端口:是计算机虚拟出来的一个数字,用来区分不同的进程,范围是0-65535之间,主要分为以下三类:
=》公认端口:从0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如80端口实际上总是http通讯;
=》注册端口:从1024到49151。它们松散地绑定于一些服务(某些大公司的某些软件,sun公司某个系统的某个服务等)。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如许多系统处理动态端口从1024左右开始;
=》动态或私有端口:从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外,比如Sun的RPC端口从32768开始的。

=》使用netstat -a -n (-a显示所有的端口,-n以数字形式显示)

=》使用Socket通信过程
=》服务器端Server:
1.创建Socket对象;Socket()
2.绑定IP与端口;Bind()
3.监听;Listen()
4.接收,得到一个代理;Accept()
5.通过代理进行通信;Receive或Send

=》客户端Client:
1.创建Socket对象;Socket()
2.连接;Connect()
3.通信;Receive或Send
4.关闭释放;Shutdown或Close

 

socket通信

标签:相关   以太网   connect   其他   rpc   监听   自己   物理   部分   

原文地址:https://www.cnblogs.com/kerwincui/p/9579342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!