当前位置: 首页 > news >正文

电商网站建设方案模板下载js特效网站模板下载

电商网站建设方案模板下载,js特效网站模板下载,百度指数批量查询工具,一级a做爰片免费网站Python中的socket模块为网络通信提供了基础API#xff0c;使我们能够在应用程序中实现低级的网络交互。使用socket编程#xff0c;可以创建TCP、UDP和RAW sockets来进行数据通信。 以下是Python socket 编程的简要概述#xff1a; 1. 核心概念 Socket: 通信的端点#x…Python中的socket模块为网络通信提供了基础API使我们能够在应用程序中实现低级的网络交互。使用socket编程可以创建TCP、UDP和RAW sockets来进行数据通信。 以下是Python socket 编程的简要概述 1. 核心概念 Socket: 通信的端点通常用于建立多个系统之间的连接。Bind: 将套接字与特定的IP地址和端口号关联。Listen: 在套接字上监听传入的连接。Accept: 接受传入的连接请求。Connect: 初始化与服务器的连接。 2. 基本流程 服务器端: 创建套接字: socket.socket()绑定套接字到地址: bind((host, port))监听连接: listen()接受连接: accept()读取/发送数据: recv()/send()关闭套接字: close() 客户端: 创建套接字: socket.socket()连接到服务器: connect((host, port))读取/发送数据: recv()/send()关闭套接字: close() 3. 主要函数/方法 socket(): 创建新的socket对象。bind(): 绑定地址到套接字。listen(): 开始监听传入的连接。accept(): 接受客户端连接并返回(connection, address)。connect(): 连接到远程地址。recv(): 从套接字接收数据。send(): 将数据发送到套接字。close(): 关闭套接字。 4. TCP 一个简单的TCP服务器和客户端的示例。 TCP服务器 import socket import jsondef start_server():# 创建socket对象server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 获取主机名称# host socket.gethostname()host 127.0.0.1port 12345# 绑定到端口server_socket.bind((host, port))# 设置最大连接数超过后排队server_socket.listen(5)print(Server is listening...)while True:# 建立客户端连接client_socket, addr server_socket.accept()print(fConnection from {addr})data client_socket.recv(1024).decode(utf-8)json_data json.loads(data)print(fReceived {json_data} from {addr})client_socket.send(data.encode(utf-8))client_socket.close()if __name__ __main__:start_server()TCP客户端 import socket import jsondef start_client():# 创建socket对象client_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 获取本地主机名# host socket.gethostname()host 127.0.0.1port 12345print(host)# 连接到服务器client_socket.connect((host, port))message {name: Alice,age: 30}json_message json.dumps(message)# 发送数据client_socket.send(json_message.encode(utf-8))# 接收数据最多接收1024字节data client_socket.recv(1024).decode(utf-8)json_data json.loads(data)print(fReceived from server: {json_data})client_socket.close()if __name__ __main__:start_client()运行结果如下 5. UDP 与TCP不同UDP是一个无连接的协议。使用UDP不需要建立和断开连接。每个数据报都是一个独立的消息。 UDP 服务器 import sockets socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind((127.0.0.1, 12345)) while True:data, addr s.recvfrom(1024)print(fReceived {data.decode(utf-8)} from {addr})s.sendto(data, addr)UDP 客户端 import sockets socket.socket(socket.AF_INET, socket.SOCK_DGRAM) while True:message input(Enter message: ).encode(utf-8)s.sendto(message, (127.0.0.1, 12345))data, addr s.recvfrom(1024)print(fReceived {data.decode(utf-8)} from {addr})运行结果如下 6. ICMP RAW sockets是一种低级的通信机制允许我们直接发送和接收底层网络协议的数据包如ICMP、IP等。在Python中使用RAW sockets通常需要root权限或适当的权限因为它涉及到操作系统级的网络操作。 以下是使用RAW socket在Python中发送一个ICMP Echo Request通常称为ping请求的示例。注意此代码是在Linux上工作的因为Windows上的raw socket行为与Linux不同。 import socket import struct import timedef checksum(data):s 0n len(data) % 2for i in range(0, len(data)-n, 2):s (data[i] (data[i1] 8))if n:s data[i1]while (s 16):s (s 0xFFFF) (s 16)s ~s 0xFFFFreturn sdef create_icmp_echo_request():icmp_type 8icmp_code 0icmp_checksum 0icmp_identifier 1icmp_sequence_number 1# ICMP headerheader struct.pack(!BBHHH, icmp_type, icmp_code, icmp_checksum, icmp_identifier, icmp_sequence_number)data struct.pack(!d, time.time())icmp_checksum checksum(header data)header struct.pack(!BBHHH, icmp_type, icmp_code, icmp_checksum, icmp_identifier, icmp_sequence_number)return header datadef main():target_host 172.20.7.84 icmp_proto socket.getprotobyname(icmp)# Create a raw sockets socket.socket(socket.AF_INET, socket.SOCK_RAW, icmp_proto)s.sendto(create_icmp_echo_request(), (target_host, 0))# Wait for a replywhile True:data, addr s.recvfrom(1024)if addr[0] target_host:print(data)print(fReceived reply from {addr[0]})breakif __name__ __main__:main() 这只是一个简单的示例它发送一个ICMP请求并等待一个响应。在生产环境中使用RAW sockets时需要处理更多的边缘情况和错误以及考虑多种协议和包格式。 7. 错误处理 在socket编程中特别是在网络中总是可能发生各种错误。为了编写健壮的应用程序应该捕获socket.error异常并据此采取适当的行动。 8. 高级 除了基础的socket编程Python还提供了更高级的工具和模块例如selectors或asyncio用于处理多并发连接或异步IO。 总之socket编程是计算机网络和分布式系统中的一个基本概念。Python提供了一个强大而简单的API来处理套接字使得网络编程变得相对容易。 以下是关于ICMP示例程序的几点说明 1当在Python中使用struct.pack方法表示正在执行结构化的打包操作将多个数据项打包成一个字节串。它通常用于处理二进制数据和底层的数据结构例如网络协议。 在ICMP示例代码段中 header struct.pack(!BBHHH, icmp_type, icmp_code, icmp_checksum, icmp_identifier, icmp_sequence_number)我们逐一解析这行代码 !: 这是字节顺序标记。感叹号!表示网络字节顺序也就是大端字节序。在网络通讯中大端字节序是常用的标准。 BBHHH: 这是格式字符串它告诉struct.pack如何打包接下来的数据。 B: 无符号字符1个字节H: 无符号短整数2个字节 因此BBHHH表示打包了2个1字节的无符号字符和3个2字节的无符号短整数总共8个字节。 后面的参数列表(icmp_type, icmp_code, icmp_checksum, icmp_identifier, icmp_sequence_number)是要打包的实际数据。这些数据的顺序和大小应该与格式字符串BBHHH匹配。 具体到ICMP头部的内容 icmp_type: ICMP消息的类型1字节icmp_code: 与ICMP类型相关的特定代码1字节icmp_checksum: 对整个ICMP数据包计算得到的校验和2字节icmp_identifier: 用于唯一标识此请求的标识符通常是发送进程的PID2字节icmp_sequence_number: 该请求的序列号通常是从0开始递增的2字节 通过struct.pack这些数据被格式化和打包成一个连续的8字节的字节串然后可以直接发送到网络上。 2在下面的代码片段中使用struct.pack来将一个双精度浮点数即Python中的float打包为一个二进制格式的字符串。这样的操作常用于将高级的数据类型转换为可以在网络上发送或在二进制文件中存储的格式。 data struct.pack(!d, time.time())让我们逐步解析这段代码 struct.pack: 这是Python中的struct模块提供的函数用于将给定的数据格式化或打包为一个二进制字符串。 !d: 这是一个格式字符串它告诉struct.pack函数如何格式化后续的数据。 !: 指定字节顺序为网络字节顺序也就是大端字节序。 d: 表示一个双精度浮点数。这通常占用8个字节。 time.time(): 这是Python中time模块的一个函数返回当前时间的时间戳类型为float。这表示从某个固定的起点通常是1970年1月1日0点称为Unix纪元到现在的秒数。 这段代码的目的是将当前的时间戳转换为一个8字节的二进制字符串。这在网络编程中很有用尤其是当我们想在数据包中包含一个时间戳以便在接收端可以解码并使用它。例如在ICMP的ping工具中发送时间戳可以帮助计算往返时间RTT。 3下面这段代码使用socket模块的getprotobyname方法来查询指定协议名的协议号。具体来说它查询“icmp”协议的协议号。 icmp_proto socket.getprotobyname(icmp) 让我们详细了解这段代码 socket: 这是Python的标准库之一它提供了套接字编程的工具和函数。 getprotobyname: 这个函数的作用是返回与给定的协议名称关联的协议号。 icmp: 这是传递给getprotobyname函数的参数代表互联网控制消息协议ICMP。 当这个函数被调用时它会查找系统的协议配置文件通常是/etc/protocols来找到与“icmp”匹配的协议号。通常ICMP的协议号为1所以函数通常会返回1。 为什么这个是重要的当创建原始套接字raw socket用于发送或接收ICMP消息时我们需要告诉系统正在使用哪种协议。icmp_proto这个变量保存的值即ICMP的协议号就是这个目的。当创建一个原始套接字并指定ICMP协议时系统就知道我们要处理ICMP数据包。
http://www.zqtcl.cn/news/301636/

相关文章:

  • 网站排名软件包年农业网站开发
  • 建设信用卡网银网站crm客户关系管理论文
  • 阿里巴巴网站的搜索引擎优化案例软件开发收费价目表
  • 企业网站建设之域名篇wordpress 文章居中
  • 萍乡网站建设行吗南康建设局官方网站
  • 一键部署wordpress爱站seo工具
  • 大连网站建设服务做进料加工在哪个网站上做
  • 南昌行业网站建设网站版权信息修改
  • 百度网站关键词排名助手低成本做网站 白之家
  • 怎么查询网站是谁做的部队网站建设报告
  • 租房网站开发专业网站建设品牌策划方案
  • 电子商务网站建设方案书软件开发工具图片
  • 案例建网站宿松网站建设公司
  • 秦皇岛网站开发wordpress免费国内主题
  • seo网站推广推荐阳江房管局查询房产信息网
  • php服装商城网站建设个人网站免费空间
  • 做内贸注册什么网站广州市建设交易中心网站
  • 点样用外网访问自己做的网站北京市网站设计公司网址
  • 用备案的网站做违法网站wordpress个性404
  • 中国制造网官方网站下载安装我国做民宿的网站
  • 英文网站seo广州市软件开发有限公司
  • 锦州网站建设渠道山西做网站的公司有哪些
  • 4线城市搞网站开发丹灶网站建设公司
  • 青岛网站建设seo优化wordpress分类标题自定义
  • 网站开发本地环境在海南注册公司需要多少钱
  • 济南网站开发去哪儿旅行app下载安装
  • 大城 网站北京做网站男生工资
  • 赣州网站建设百家号免费软件网
  • 在合肥做网站多少钱网站开发外包平台
  • 百度指数查询平台网站建设SEO优化哪家好