学习本篇文章的前提,你需要了解网络技术基础,请参阅我的另一个分类的博文:网络互联技术(4)——计算机网络常识.原理剖析 网络通信要素 1.IP地址: 用来标识网络上一台独立的终端(PC或者主机) ip地址 = 网络地址+主机地址(网络号:用于主机所在的网络/网段:主机号:用于识别该网络中的主机) 特殊的ip地址:127.0.0.1(本地环回地址),可用于检测本机网卡是否正常 比如我这台电脑的ip: 检测网卡正常与否就可以ping 环回地址: 如果ping通,本地网卡就没问题 2.端口号: 用于标…
Socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用[打开][读写][关闭]模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭) socket和file的区别: file模块是针对某个指定…
一.TCP/IP相关知识 TCP/UDP提供进程地址,两个协议互不干扰的独自的协议       TCP :Transmission Control Protocol 传输控制协议,面向连接的协议,通信前需要建立通信信道(虚拟链路),结束后拆除链路,流式数据协议,可靠的连接                       UDP:User Datagram Protocol 用户数据报协议,无连接的协议,不可靠的连接   IP是主机到主机之间,在传输过程中是不会变的,不能超过MTU:最大传输单元 MA…
1 引言 本篇主要对Python下网络编程中用到的socket模块进行初步总结.首先从网络基础理论出发,介绍了TCP协议和UDP协议:然后总结了socket中的常用函数:最后通过实际代码展示基本函数的应用. 2 网络基础 要想理解socket,首先得熟悉一下TCP/IP协议族.TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何在它们之间传输的标准,从字面意思来看TCP/IP是T…
什么是Socket? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议. TCP连接的端点是由一个IP地址和一个PORT来唯一标识的.IP是用来标识互联网中的一台主机的位置,而PORT是用来标识这台机器上的一个应用程序,IP地址是配置到网卡上的,而PORT是应用程序开启的. 而程序的pid…
一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二 osi七层 引子: 须知一个完整的计算机系统是由硬件.操作系统.应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷啥的) 如果…
socket是操作系统中I/O系统延伸部分,支持TCP和UDP等网络通信协议,它使计算机之间(或其本身)的进程通信称为可能.socket中的socket()函数.recv()函数和send()函数,相当于文件操作中的open()函数.read()函数.write()函数.因此,soket使得操作系统能够以文件描述符的方式对网络数据进行操作. 1.socket中udp通信 服务端: import socket udpSocket = socket.socket(socket.AF_INET, so…
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; } /* HEAD…
一.引入 关于Python的网络编程,最基础莫过于socket了. socket,又称“套接字”,网络上的两个程序如果想要实现双向的数据通信,需要建立连接,这个连接的一端就称为一个socket. python中有一个模块socket,在这个模块中可以找到socket()函数,该函数用于创建套接字对象.根据所用协议的不同(TCP/IP和UDP/IP),可以创建两类socket.下面贴上一个TCP/IP类的socket实例. 二.创建TCP服务器 __author__ = "JentZhang&qu…
一:黏包 ###tcp协议在发送数据时,会出现黏包现象.     (1)数据粘包是因为在客户端/服务器端都会有一个数据缓冲区,     缓冲区用来临时保存数据,为了保证能够完整的接收到数据,因此缓冲区都会设置的比较大.     (2)在收发数据频繁时,由于tcp传输消息的无边界,不清楚应该截取多少长度 导致客户端/服务器端,都有可能把多条数据当成是一条数据进行截取,造成黏包   ### 黏包出现的两种情况 #黏包现象一: 在发送端,由于两个数据短,发送的时间隔较短,所以在发送端形成黏包 #黏包现…