网络通信--Python高级


Python高级

网络通信(Network Communication)

看似是两个机器对话,其实是位于两个机器上两个进程在相互收发数据,即网络通信也是一种IPC实现,它不仅可以实现一个机器上的两个进程通信,还能实现位于不同地域的两台机器上的进程间通信

通信地址要明确,在计算机网络世界中,通过IP地址(Internet Protocol Address)表示一个机器在网络中的位置,通过端口号(Port)区分表示一个机器内部的不同进程,端口号是一个无符号整数,取值范围0-65535,其中1024以下的端口号称为熟知端口号,知名的软件服务通常使用这个范围的端口号,比如Web服务器使用80,FTP服务器使用21,SMTP服务器使用25,SSH服务使用22等,我们自己开发的应用程序建议使用1024以上的端口号,以免跟它们冲突,所以,计算机网络通信地址是由IP和端口号联合构成,二者缺一不可。

要实现正常通信,除了参与通信的进程地址要明确之外,还要遵守统一的通信规则,比如通信的数据格式,通信的流程等,这就是所谓的通信协议

通信至少需要两个程序参与,被动通信的一方称为服务器端程序(Server),主动发起通信的一方称为客户端程序(Client),这种通信模式称为C/S模式

计算机网络常识

计算机网络分类:局域网(LAN),城域网,广域网(WAN)、Internet(互联网)

网卡(网络适配器, Network Adapter):接入某个网络的硬件入口,俗称网卡,一个机器可以安装多个网卡,用于接入不同的网络

主流通信网络:电信网络、计算机网络、有线电视网络,电力网络等

计算机网络是开放式的,构建成本非常低,最简单情况下可以使用一根1米长的网线将两台机器连接起来就构成了一个局域网

计算机网络系统分层结构:

TCP/IP标准(4层):物理层、网络层、传输层、应用层

OSI/RM标准(7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

在计算机网络系统中,有很多通信协议,而最重要的通信协议是TCP和IP协议,通常将所有通信协议统称为TCP/IP协议族

网络层协议:IP(Internet Protocol)

传输层协议:TCP(Transport Control Protocol)、UDP(User Datagram Protocol)

应用层协议:SSH(Secure Shell, 基于TCP, 默认端口号为22)、HTTP(Hyper Text Transport Protocol,基于TCP,默认端口为80)、FTP(File Transport Protocol,基于TCP,默认端口21)、SMTP(Simple Mail Transport Protocol,基于TCP,默认端口号25)、POP3(Post Office ,Protocol,基于TCP,默认端口110)、DNS(Domain Name System,基于UDP,默认端口53)等

扩展学习 :IP地址分类,IPV4,IPv6,子网掩码,默认网关,DNS服务器

基于UDP协议通信的实现

使用标准库中的socket模块实现

扩展

  1. str和bytes之间的转换,调用encode

  2. 将字节转换为字符串 用decode方法

  3. 任何时候ping 127.x.x.x(自己)都ping得通,不然就是网卡坏了

  4. 应用层协议是基于传输层协议的

  5. 浏览器和web服务器的通信就是HTTP协议

  6. 端口号的两端不要用,建议使用1024以后的端口

  7. 局域网:最小的计算机网络

  8. 计算机网络并不是电信或广电局的网络,它们的网络是封闭的,一般用户不能进行使用

优质内容筛选与推荐>>
1、C#深入操作IIS技术(创建配置站点和设置IIS Web服务扩展) .
2、详解MySQL主从复制实战 - 基于GTID的复制
3、lua基础学习(一)
4、页面嵌入开发
5、布局 — 样式重置


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号