
首先,基本概念
网络编程: 设计一个可以通过网络与另一个进程进行通信的程序. 该过程可以简单地理解为正在运行的程序. 一端称为客户端;另一端称为客户端. 另一端称为服务器(在通信双方之间发起请求的一方必须知道服务器在哪里),另一端称为客户端(被动接收请求的一方是服务器. 必须告诉服务器客户所在的位置,通常是固定地址).
路由器: 局域网和外部网络通信的入口和出口.
路由器内部管理子网(LAN),可以在路由器中设置子网段,设置有线端口的IP地址,设置dhcp功能等. 因此,LAN的IP地址由路由器;路由器实现外部网络联网方法取决于外部网络(例如ADSL拨号Internet访问,宽带帐户面向网络编程技术,局域网等). 这时,路由器相当于高层网络的节点之一.
路由器的主要功能是为通过路由器的每个数据包找到最佳路径(路由)并将其转发,作为在外部网络和内部网络之间进行数据传输的桥梁.
套接字: 网络连接的端点. 每个套接字都有一个相应的套接字地址,该地址由32位Internet地址和16位端口号组成,并用“ IP地址: 端口号”表示,例如: 192.168.181.129:9999,其中“ 192.168” “ .181.129”表示IP地址,“ 9999”表示端口号. 套接字可以视为两个程序之间的通信连接的端点. 一个程序将一条信息写入Socket,然后Socket将该信息发送到另一个Socket,以便可以将该信息传输到其他程序.
每个套接字使用一个半相关的描述: {协议,本地地址,本地端口}
完整的套接字使用相关描述: {协议,本地地址,本地端口,远程地址,远程端口}

IP地址在IP协议中用于标识网络中的不同主机,并分为IPv4和IPv6.
端口号是具有网络功能的应用程序软件的标识号. 端口号用于标识进程,告诉操作系统应将当前数据分配给哪个进程,而IP地址+端口号可以标识网络. 特定主机的特定过程.
TCP / IP网络协议
TCP / IP协议套件是当今Internet上最基本的四层网络协议系统.
数据链路层: 负责帧数据的传输. (数据链路层封装的数据称为帧)
网络层: 负责过去的数据传输方式
传输层: 负责传输数据的控制(准确性,安全性)
应用层: 负责数据显示和获取


传输层协议: 包括TCP / UDP两种协议. 用户需要告知操作系统传输层应使用哪种协议
UDP(用户数据报协议): 无连接,不可靠;面向数据报传输性能高,但不能保证可靠的传输
适用场景: 实时性要求很高,但视频传输的安全性要求不是很高
TCP(传输控制协议): 面向连接的可靠传输;面向字节传输性能低,但可以保证可靠传输
适用方案: 高安全性要求-文件传输.
基于UDP协议的套接字客户端和服务器的通信编程
服务器: 建立套接字,声明其自己的端口和IP,然后将其绑定到套接字,使用“侦听”侦听,然后继续使用“接受”来检查是否存在连接. 如果存在,请捕获套接字并通过recv获取消息的内容. 通信完成后,调用closeSocket关闭与accept对应的套接字. 如果不需要等待任何客户端连接,请使用closeSocket直接关闭其套接字.

客户端: 建立套接字,通过端口号和地址确定目标服务器,使用Connect连接到服务器,发送消息,等待处理,并在通信完成后调用closeSocket关闭套接字.
基于TCP协议的套接字客户端和服务器的通信编程
DNS(域名服务)
DHCP(动态主机配置协议,动态主机配置协议)
视觉隐喻
将电话系统与面向连接的Socket机制进行比较,电话上的两方等效于需要通信的两个进程

双方通话的区域等同于一个网络,例如局域网,局域网和广域网
区号是其网络地址,分为ipv4和ipv6
在该区域中交换一个单元相当于一个主机,并且每个用户在该主机位置分配的局内号码“电话号码”相当于一个套接字.
在进行任何呼叫之前,任何用户必须首先拥有一部电话,这相当于申请一个Socket号码;同时,他们必须知道对方的电话号码,相当于拥有一个Socket. 然后拨打呼叫到另一方的电话面向网络编程技术,这等同于发送连接请求(如果另一方不在同一区域,则拨打另一方的区号,这等同于提供网络地址). 如果对方在场且处于空闲状态(等效于另一方的通信主机已打开并且可以接受连接请求),则拿起电话麦克风,两方就可以正式通话,这等效于成功的连接. 双方通话的过程是向电话发送信号和从电话接收信号的过程,等效于向套接字发送数据和从套接字接收数据. 通话结束后,有一方挂断电话,相当于关闭套接字并取消连接.
推荐:
; depth_1-utm_source = distribute.pc_relevant.none-task-blog-OPENSEARCH-3.nonecase
补充说明:
最近正在研究linux网络编程的知识,整理出网络上的相关资料,它是一个“搬运工”,如果有侵权行为,请通知我,我会及时删除,部分内容是为个人理解,如有错误,请指教,欢迎讨论和学习!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-271745-1.html
实在是怀疑他有没有真才实学