ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++网络编程

2020-08-12 20:01:15  阅读:184  来源: 互联网

标签:协议 socket IP 编程 网络 C++ IP地址


  网络编程

  socket是跨平台的在windows和Linux基本通用,无论是java php 都是需要网络的,网络编程是每个程序员都需要掌握的,它并不复杂。复杂的地方是对整个协议的理解,还有网络通信的理解。

  这个博客是整个网络编程之最,学习的目的:

  { 能够熟悉Windows和Linux下开发流程,能够开发出跨平台的多线程的网络程序。理解socket变成原理,理解udp和tcp的协议,并能通过抓包工具分析协议,通过本课程的学习能够开发出支持高并发的网络服务端,通过开发支持php的http服务器和sysllog服务器能够将网络编程投入实战应用。掌握C++11的线程库和正则表达式库。}

  使用语言是:C/C++,因为他高性能,对高并发的处理很好。

  最终可以带大家实战一个支持php脚本的http服务器。

  需要注意的是socket库不等同于TCP/UDP编程,因为它还可以开发其他的一些协议。

  交流群:140066160

  进入正题:(先讲理论,再实战)

  1、TCPIP协议的分层讲解

  学习网络编程,他说基于什么协议之上的。不是会用几个函数就可以了,那么TCP/IP是基于什么协议呢?

  我们对网络编程不能停留在仅仅会用socket把两个程序调通了,互相发送协议。你要明白整个协议的过程,为了实践昂中解决问题,碰到网络问题你知道是什么原因。

  

 

   看TCIP/IP四层协议,我看到我们程序人员其实只要用到这四层,OSI模型中。

  1、网络介质层

  物理层和数据链路层对应的是“网络介质层”,每一层都是为了解决一个问题,他是解决一个硬件设备的和另一个硬件设备在物理上怎么进行通信。通信得知道地址,所以“网络介质层”会最终封装出一个“MAC”地址,就是硬件的地址,来进行通信。

  2、IP层

  这一层,上面已经实现了一个设备到另一个设备物理上的连接,但是,我们需要的是真正接收的这个数据呢,这个时候就需要确定是由谁来接收。那我们通过IP层给每个设备封装一个IP地址。

  然后由交换机来进行分配,在这层程序成员需要做的是:IP地址建立连接,目前IP地址都是基于IPV4是4个字节的IP地址。这个网络层只需要知道IP对IP地址

  协议的目的是什么?协议是怎么实现的?

  

 

   非常简单,原理也非常简单,我们就是在用户发送的数据加一层头,最后接收端在通过解包一层一层去掉。

  为了深刻理解上面的图,我们下载一个抓包软件来看看,wireshark,可以百度直接就可以下载,抓HTTP的下一看看。

  

 

标签:协议,socket,IP,编程,网络,C++,IP地址
来源: https://www.cnblogs.com/wjq13752525588/p/13492645.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有