c语言之Linux网络开发

一、网络编程预备知识 socket IP地址 端口号 字节序 (一)socket 是一个编程接口 是一种特殊的文件描述符 (everything in Unix is a file) 并不仅限于TCP/IP协议 面向连接 (Transmission Control Protocol - TCP/IP) 无连接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange - IPX) (二)socket类型 1、流式套接字(SOCK_STREAM) 提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。 2、数据报套接字(SOCK_DGRAM) 提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。 3、原始套接字(SOCK_RAW) 可以对较低层次协议如IP、ICMP直接访问。 (三)socket的位置 (四)IP地址 IP地址是Internet中主机的标识: Internet中的主机要与别的机器通信必须具有一个IP地址 IP地址为32位(IPv4)或者128位(IPv6) 每个数据包都必须携带目的IP地址和源IP地址,路由器依靠此信息为数据包选择路由 表示形式:常用点分形式,如202.38.64.10,最后都会转换为一个32位的无符号整数 (五)端口号 为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区别 TCP端口号与UDP端口号独立 端口号一般由IANA (Internet Assigned Numbers Authority) 管理 众所周知端口:1~1023(1~255之间为众所周知端口,256~1023端口通常由UNIX系统占用) 注册端口:1024~49150 动态或私有端口:49151~65535 (六)字节序 不同类型CPU的主机中,内存存储多字节整数序列有两种方法,称为主机字节序(HBO): 小端序(little-endian) - 低序字节存储在低地址 将低字节存储在起始地址,称为“Little-Endi...

Python特性浅析



一、什么是Python

       Python是由吉多·范罗苏姆(Guido van Rossum)于1989年开发的,作为ABC语言的一种继承。根据其创建者 Guido van Rossum 的说法,Python 是:

        “高级编程语言,其核心设计理念都是关于代码可读性和允许程序员用几行代码表达概念的语法”

        从上面一句话可以看出来Python的语言特点大概就是:
  • 代码可读性
  • 代码简洁性
二、应用领域

Python的应用场景有很多,如:
  • Web开发,拥有很多知名的Web框架(Django、Flask...)
  • 云计算,典型代表OpenStack
  • 数据分析,拥有众多的第三方数据分析库,如:NumPy、Pandas、Matpolotlib等
  • 人工智能,进行机器学习、深度学习算法的研究
...

三、解释型语言

        假如你看Python相关资料的介绍可能看到Python是一门解释型语言,那么什么是解释型语言呢?与之相对的就是编译型语言。
  • 编译型
       编译型语言就是在写完程序后,将程序编程成二进制的文件,比如.exe类型文件,因为最终需要食用电脑来运行,而电脑只会识别“0”或者“1”这样的字节码。

        当编译成这样的二进制之后,以后只要运行遮掩的二进制文件即可,所以执行效率高。

        常见的语言有:C、C++、Golang等
  • 解释型
         解释型语言就是使用解释器一边执行一边转换成二进制,以便电脑执行,这样显然速度就没有编译型语言快,每次执行所写的应用程序都要从头开始一边执行一边运行。常见的语言有:JavaScript、Python、PHP等。

        所以,Python与编译型语言相比在执行效率上是会有一些劣势,而上面所说的解释器又是什么呢?你认为我们在前面所说的安装Python是做什么用的呢?其实在安装Python后就会有一个Python解释器,它就是专门将我们所写的Python程序翻译成二进制的。

        每一门语言都有其优势和劣势,需要辩证的去看,我们可以取其所长,加以利用。


更多文章合集前往: 往期精彩文章

此博客中的热门博文

玩转虚拟机系列之如何搭建虚拟机

玩转虚拟机系列之远程工具

玩转虚拟机系列之如何高效创建虚拟机