大家好,欢迎来到IT知识分享网。
1. 网络基础
1-1. IP地址
1-1-1. 目的:
用来标记网络上的一台电脑
1-1-2. 如何查看IP
window:
ipconfig
Linux:
ifconfig
1-1-3. IP地址分类
1-1-3-1. IPV4(被广泛使用的)
- IP协议的版本号是4
- 当前再用,目前被广泛应用
- IPv4的地址位数为32位(4位字节)
- 地址有限,几乎全部耗尽
1-1-3-2. IPV6
- IP协议的版本号是6
- 实验阶段,作为下一代IP地址
- IPv6的地址位数位128位(16位字节)
- 号称可以为全世界的每一粒啥子编上一个地址
1-2. 端口(port)
1-2-1. 知名端口
- 80端口分配给HTTP服务
- 21端口分配给FTP服务
- 。范围是从0到1023
1-2-2. 动态端口
动态端口的范围是从1024-65535
2. socker
2-1. socker 基本概念
2-1-1. 简介
TCP/IP协议
TCP/IP协议是Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。
TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。
TCP/IP协议模型
socker
socket又称”套接字”,应用程序通常通过”套接字”向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。白话说,socket就是两个节点为了互相通信,而在各自家里装的一部’电话’。
2-2. socker的使用
- 创建套接字
- 使用套接字收/发数据
- 关闭套接字
2-2-1. UDP发送与接收程序
UDP发送数据
import socket def main(): # 创建一个UDP套接字 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) udp_socket.sento(b'nihao', ('.0.162', 8080) # 关闭socker udp_socket.close() if __name__ == '__main__': main()
UDP接收数据
- 创建套接字
- 绑定本地信息(IP和端口)
- 接收数据
- 打印数据
- 关闭套接字
import socket def main(): udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 1 创建套接字 bind_addr = ('',7789) # 不写ip,表示本机的任何一个ip udp_socket.bind(bind_addr) # 2 绑定本地信息 while True: recv_data = udp_socketrecvfrom(1024) # 3. 1024 表示本次接收最大字节数 recv = recv_data[0] send_data = recv_data[1] print("{}:{}".format(str(send_data), recv.decode('gbk')) # 4. 打印数据 udp_socket.close() # 5. 关闭套接字 if __name__ == '__main__': main()
端口绑定问题
如果程序运行时,没有绑定端口,那么操作系统会自动分配一个端口给程序。而且同意端口,不能用两次。
UDP聊天器
- 创建套接字,套接字是可以同时收发数据的
- 发送数据
- 接收数据
2-3. TCP客户端与服务端
TCP介绍
- TCP协议,传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议
- TCP通信需要经过创建连接、数据传送、终止连接三个步骤
- TCP通信模型中,在通信开始之前,一定要先建立相关连接,才能发生数据
TCP特点
面向连接:
- 通信双方必须先建立连接才能进行数据的传输
可靠传输:
- TCP采用发送应答机制
- 超时重传
- 错误校验
- 流量控制和阻塞管理
TCP与UDP区别总给
- CP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。
- TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
- UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
- 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。
- TCP对系统资源要求较多,UDP对系统资源要求较少。
UDP 通信
TCP 通信
TCP 客户端与服务端的定义
服务器端:就是提供服务的一方,而客户端,就是需要被服务的一方
TCP客服端
构建流程:
- 创建socket
- 链接服务器
- 接收数据(最大接收2014字节)
- 关闭套接字
TCP服务端
- socket创建套接字
- bind绑定IP和port
- listen使套接字变为可以被动链接
- accept等待客户端的连接
- recv/send接收发送数据
TCP服务端为多个客户端服务
文件下载器
TCP客户端
- 创建套接字
- 目的信息 服务器的ip和port
- 连接服务器
- 输入要下载的文件名称
- 发送文件下载请求
- 接收对方发送过来的数据
- 接收到数据在创建文件、
- 关闭套接字
TCP服务端
- socket创建套接字
- bind绑定IP和port
- listen使套接字变为可以被动链接
- accept等待客户端的链接
- recv/send接收发送数据
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/155931.html