百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

PythonNet入门 day01(python pythonnet)

toyiye 2024-07-02 02:57 14 浏览 0 评论

查看ip

windows

win + r

输入cmd -> enter

ipconfig

linux

在shell 命令行输入 : ifconfig

osi模型(面试常用)

是网络传输的一个标准化模型,是计算机网络体系结构发展的产物

应用层 : 提供OSI的用户服务,例如处理程序,文件传输协议和数据管理。

表示层 :完成数据的转换和文本压缩加密

会话层:提供进程间的连接建立,选择使用什么样的传输层协议

传输层 :建立网络连接,提供适合的传输服务,提供透明的传输服务,提供端到端的流量控制

网络层 :控制分组传送,路由选择,网络互连。

链路层 : 提供链路的交换,具体的数据发送功能

物理层 : 物理硬件,提供具体的传输条件和传输接口规定

实际应用

网络四层模型 -- > 基于osi七层模型进行实际情况的整合

应用层 : 应用层 表示层 会话层

传输层 : 传输层

网络层 : 网络层

物理链路层 : 链路层 物理层

协议:网络协议,是通信双方必须共同遵循的一个约定。如怎么建立连接,怎么进行识别

tcp协议 : 传输控制协议 传输层

udp协议 : 用户数据报协议 传输层

ip 协议 : 网间协议 网络层

http协议: 超文本传输协议 应用层

预备知识 :

主机 :

获取主机名

import socket

# 获取当前主机主机名

In [2]: socket.gethostname()

Out[2]: 'tedu'

# 解析服务器主机名,转变为数字地址

In [3]: socket.gethostbyname('localhost')

Out[3]: '127.0.0.1'

IP 地址

IPV4

192.168.1. 235

网段号 主机号 (2-254)

每部分 0-255

127.0.0.1 本机回环ip 做本机的网络实验测试使用IP

0.0.0.0 局域网可用ip获取 用作自动获取可用IP

获取主机网络信息

socket.gethostbyaddr('localhost')

('localhost', [], ['127.0.0.1'])

主机名 别名 主机IP

IP地址转换成二进制字节串

socket.inet_aton('192.168.1.1')

反向转换

socket.inet_ntoa(b'\xc0\xa8\x01\x02')

* 两个更新的函数,第一个参数可以传AF_INET AF_INET6

IP地址转换成二进制字节串

socket.inet_pton(socket.AF_INET,'192.168.1.1')

反向转换

socket.inet_ntop(socket.AF_INET,b'\xc0\xa8\x01\x02')

端口号

为了区分一台主机收到的数据包转交给那个进程处理

本质是一个整数 1--65535

1-1023 由众所周知的系统程序占用

1024 -- 10000 很多安装程序会使用 8888 9999 6666

>10000 我们自己写程序最好使用10000以上

查看某个服务程序的端口

socket.getservbyname('mysql')

dns(域名解析器)

子网掩码:配合IP使用,过滤当前网段

字节序

主机字节序有两种

大端序 高序字节存在低地址位

小端序 低序字节存在低地址位

网络字节序 ----》 大端序

序列转换方式

将16位网络字节序转换为本地

socket.ntohs(8)

将16位本地字节序转换为网络字节序

socket.htons(1024)

将32位本地字节序转换为网络字节序

socket.htonl(1024)

将32位网络字节序转换为本地

socket.ntohl(8)

bcd-lsp

socket

网络间通信的手段,是一个io接口规范。在linux下socket本身是一种文件类型 叫做 套接字文件 类似 open产生的文件描述符

套接字的分类

流式套接字(SOCK_STREAM)

提供了面向连接的传输服务,在传输层使用TCP协议通信

数据报套接字(SOCK_DGRAM)

提供了面向无连接的服务,在传输层使用UDP协议通信

原始套接字(SOCK_RAW)

针对底层协议编程的,如IP,ICMP的直接访问。我们一般用不到,主要用作交换机等偏网络设备的编程

面向连接 :可靠的传输服务,需要先建立网络之间的连接关系(三次握手)。数据无丢失,无差错,无重复,无失序

面向无连接 :数据发送前不需要先确定连接。数据的传输是不可靠的,有可能产生丢失,重复,或者失序。

TCP网络通信

适用情况:

1.传输质量要求较高

2.数据的传输量较大,并且需要可靠性支持

要求:过程能够描述,顺序能够掌握,每一步什么目的能够知晓

建立连接的过程(三次握手)

断开连接的过程(四次挥手)

socket tcp通信的过程

服务器端

1.创建套接字(流式套接字)

from socket import *

socket(socket_family=AF_INET,socket_type=SOCK_STREAM,protocol=0)

功能:创建socket套接字

参数:sock_family:AF_INET AF_UNIX 地址族类型

socket_type: SOCK_STREAM(流式套接字)

SOCK_DGRAM(数据包套接字) 套接字类型

protocol:一般使用默认值

返回值:返回创建的套接字

2.绑定服务器端的ip和端口号

sockfd.bind((host,port))

3.将套接字设置为监听套接字,并且创建监听队列大小

sockfd.listen(num)

4.阻塞等待接收客户端连接请求

connfd,addr = sockfd.accept()

5.接收发送消息

connfd.send()

connfd.recv()

6.关闭套接字

connfd.close()

sockfd.close()

4:40

tcp 客户端流程

1.创建socket套接字

2.发起连接请求

sockfd.connect(ADDR)

3.接收发送消息(需要和服务器端发送接收相匹配)

connfd.send()

connfd.recv()

4.关闭套接字

sockfd.close()

tcp粘包

指的是发送方发送若干数据包的时候,因为是数据流的方式导致数据粘连在一起,从缓冲区接收后后一数据紧挨着前一数据

如果是大文件分组发送时我们不需要处理,但是如果是若干不相干文件进行分别发送那么就需要处理粘包问题

处理粘包的方法:

1.格式化数据 将数据格式加以规定,可以规定字节数或者规定以什么结尾

2. 发送长度 将数据长度作为发送内容

3.每次发送后有一个短暂的延迟操作。不适合大量数据的多次的发送

作业 :

写一个简单的文件服务器

server 端

client 端

1.先运行server

2.运行client的时候呈现一个简单的界面 print打印即可

3.实现的功能 1.list 2 get 3 put 4 quit

1. 显示出所有服务器端文件的名字

2. get filename 下载服务器端的某个文件

3. put filename 上传客户端的某个文件

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码