首页 文章 精选 留言 我的

精选列表

搜索[network],共6380篇文章
优秀的个人博客,低调大师

书籍:python网络编程 Python Network Programming - 2019

简介 主要特点 掌握Python技能,开发强大的网络应用程序 掌握SDN的基本原理和功能 为echo和chat服务器设计多线程,事件驱动的体系结构 此学习路径强调了Python网络编程的主要方面,例如编写简单的网络客户端,创建和部署SDN和NFV系统,以及使用Mininet扩展您的网络。您还将学习如何自动化传统和最新的网络设备。在阅读这些章节的过程中,您将使用Python for DevOps和开源工具来测试,保护和分析您的网络。最后,您将使用套接字编程开发客户端应用程序,例如Web API客户端,电子邮件客户端,SSH和FTP。 到本学习路径结束时,您将学习如何使用高级网络数据包捕获和分析技术分析网络的安全漏洞。 你会学到什么 使用异步模型创建基于套接字的网络 为Web API开发客户端应用程序,包括S3 Amazon和Twitter 与具有不同协

优秀的个人博客,低调大师

社交网络分析(Social Network Analysis in Python)①

今天的网络是我们日常生活的一部分。 让我们学习如何使用网络在Python中可视化和理解社交网络 网络无处不在,道路网络,社交媒体上的朋友和关注者网络以及办公室同事网络。 他们在日常生活中发挥着重要作用,从传播有用信息到影响全国选举。 分析这些网络并根据这些网络做出明智决策的能力是一项对任何数据分析师都很重要的技能。 介绍 首先让我们从社交网络的含义开始。 下面你会看到一个宝莱坞演员网络作为节点。 如果他们在至少一部电影中合作,他们就会用实线连接。所以,我们可以看到Amitabh Bachchan和Abhishek Bachchan都与网络中的所有演员合作,而Akshay Kumar只与两个Bachchans合作。 这也是一个社交网络。 任何具有个人之间联系的网络,其中连接捕获它们之间的关系是社交网络。 分析这些网络可以让我们深入了解网络中的人,比如谁是真正的影响者,谁是最相关的,等等。 每个网络包括: 节点:我们正在建立网络的个人。 上例中的演员。 边缘:节点之间的连接。 它表示网络节点之间的关系。 在我们的例子中,关系是演员们一起工作。 使用NetworkX创建网络 有许多类型的网络。 我们将使用NetworkX开发和分析这些不同的网络。 首先,您需要安装networkX:您可以使用以下任一方法: pip install networkx 或者如果在Anaconda工作 conda install -c anaconda networkx 这将安装最新版本的networkx。 本教程中的代码是在Python = 3.5,NetworkX = 2.0版本上完成的。 对称网络 我们在上面创建的第一个演员网络是对称网络,因为“在电影中一起工作”的关系是对称关系。 如果A与B相关,则B也与A相关。让我们创建上面在NetworkX中看到的网络。我们将使用Graph()方法创建新网络,并使用add_edge()在两个节点之间添加边。 # -*- coding: utf-8 -*- """ Created on Wed Oct 3 15:43:18 2018 @author: Zihao Chen """ % reset -f % clear # In[*] import networkx as nx G_symmetric = nx.Graph() G_symmetric.add_edge('Amitabh Bachchan','Abhishek Bachchan') G_symmetric.add_edge('Amitabh Bachchan','Aamir Khan') G_symmetric.add_edge('Amitabh Bachchan','Akshay Kumar') G_symmetric.add_edge('Amitabh Bachchan','Dev Anand') G_symmetric.add_edge('Abhishek Bachchan','Aamir Khan') G_symmetric.add_edge('Abhishek Bachchan','Akshay Kumar') G_symmetric.add_edge('Abhishek Bachchan','Dev Anand') G_symmetric.add_edge('Dev Anand','Aamir Khan') 不对称网络 如果节点之间的关系是'孩子',那么关系就不再是对称的。 如果A是B的子节点,则B不是A的子节点。这种关系不对称的网络(A与B相关,并不一定意味着B与A相关联)被称为非对称网络。 我们可以使用DiGraph方法在NetworkX中构建非对称网络,该方法缺少方向图。 让我们制作一个非对称图。 # In[*] % reset -f % clear import networkx as nx # In[*] G_asymmetric = nx.DiGraph() G_asymmetric.add_edge('A','B') G_asymmetric.add_edge('A','D') G_asymmetric.add_edge('C','A') G_asymmetric.add_edge('D','E') # In[*] nx.spring_layout(G_asymmetric) nx.draw_networkx(G_asymmetric) 加权网络 到目前为止,我们的网络没有权重,但网络可能是用权重制作的,例如,如果在我们的初始网络中我们将一起完成的电影数量视为权重,我们将获得一个加权网络。 让我们再次演绎演员,但这次我们为网络增加了重量,每个边缘都有一个重量,表示他们一起完成的电影数量。 # In[*] % reset -f % clear # In[*] import networkx as nx G_weighted = nx.Graph() G_weighted.add_edge('Amitabh Bachchan','Abhishek Bachchan', weight=25) G_weighted.add_edge('Amitabh Bachchan','Aaamir Khan', weight=8) G_weighted.add_edge('Amitabh Bachchan','Akshay Kumar', weight=11) G_weighted.add_edge('Amitabh Bachchan','Dev Anand', weight=1) G_weighted.add_edge('Abhishek Bachchan','Aaamir Khan', weight=4) G_weighted.add_edge('Abhishek Bachchan','Akshay Kumar',weight=7) G_weighted.add_edge('Abhishek Bachchan','Dev Anand', weight=1) G_weighted.add_edge('Dev Anand','Aaamir Khan',weight=1) nx.spring_layout(G_weighted) nx.draw_networkx(G_weighted) degree 节点的度数定义节点具有的连接数。 NetworkX具有可用于确定网络中节点程度的功能度。 nx.degree(G_symmetric,'Dev Anand`) 这将返回值3,因为Dev Anand仅与网络中的三个角色合作。 聚类系数 据观察,在社交网络中共享联系的人倾向于形成关联。换句话说,社交网络中存在形成集群的趋势。我们可以确定节点的集群,Local Clustering Coefficient,它是节点的朋友(即连接)彼此连接的对的一部分。为了确定局部聚类系数,我们使用nx.clustering(Graph,Node)函数。 # In[*] nx.clustering(G_symmetric, 'Dev Anand') nx.clustering(G_symmetric,'Abhishek Bachchan') nx.average_clustering(G_symmetric) 在对称Actor网络中,您会发现Dev Anand的局部聚类系数为1,而Abhishek Bachchan的局部聚类系数为0.67。 对称Actor网络的平均聚类系数(所有局部聚类系数之和除以节点数)为0.867。 距离 我们还可以分别使用nx.shortest_path(Graph,Node1,Node2)和nx.shortest_path_length(Graph,Node1,Node2)函数确定NetworkX中两个节点之间的最短路径及其长度。 nx.shortest_path(G_symmetric, 'Dev Anand', 'Akshay Kumar') ['Dev Anand','Amitabh Bachchan','Akshay Kumar'] 我们可以使用广度优先搜索算法从该节点开始,找到节点与网络中每个其他节点的距离。 networkX提供了bfs_tree函数来完成它。因此,如果您尝试T = nx.bfs_tree(G_symmetric,'Dev Anand')并现在绘制此树,我们将获得一个网络结构,告诉我们如何从Dev Anand开始到达网络的其他节点 # In[*] T = nx.bfs_tree(G_symmetric, 'Dev Anand') nx.draw_networkx(T) 偏心率 节点A的偏心率被定义为A和所有其他节点之间的最大距离。 可以使用nx.eccentricity()函数找到它。 在对称的Actor网络中,Dev Anand的偏心率为2,而Abhishek Bachchan的偏心率为1(它与所有人相连)。

优秀的个人博客,低调大师

Android 小项目之--数据存储【Network】(附源码)

将数据保存发送到电子邮件中备份,首要前提应该先在模拟器中设置好电子邮件帐户,设置如下: 第一步,启动模拟器,打开“菜单”,选择“电子邮件”项,填写相应帐号和密码。 第二步,点击NEXT,程序自动配置电子邮件相关信息。 第三步,配置完成后,输入相应的名称信息,即可设置完成,接下来程序会默认帮你导入你输入邮箱帐号的相关信息 业务逻辑如下:示例中有一个文本框用来模拟用户的信息,当程序退出的时候保存文本档的信息,并转到发送邮件的页面,让用户把信息保存到邮箱 里面。具体代码参考如下: 发送信息保存到邮箱 package com.terry; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.KeyEvent; import android.widget.EditText; public class networkActivity extends Activity{ private EditTextmyEditText; /** Calledwhentheactivityisfirstcreated. */ @Override public void onCreate(BundlesavedInstanceState){ super .onCreate(savedInstanceState); setContentView(R.layout.main); myEditText = (EditText)findViewById(R.id.myEditText4); } @Override public boolean onKeyDown( int keyCode,KeyEventevent){ // TODOAuto-generatedmethodstub if (keyCode == KeyEvent.KEYCODE_BACK) { // 发送邮件地址 Uriuri = Uri.parse( " mailto:285735942@qq.com " ); // 创建intent Intentit = new Intent(Intent.ACTION_SENDTO,uri); it.putExtra(android.content.Intent.EXTRA_SUBJECT, " 网络存储 " ); it.putExtra(android.content.Intent.EXTRA_TEXT,myEditText.getText()); startActivity(it); this .finish(); return true ; } return super .onKeyDown(keyCode,event); } } 扩展 既然发送数据保存到网络上,当然也可以获得网络上的数据,下面我们通过一个小例子来实现从网路上加载一个txt文件的小说程序 。如图: 逻辑代码如下:首先创建一个我们要访问的URL地址,然后取链接的文件,循环把数据读取出来。具体代码参考如下: 读取XML代码参考 package com.terry; import java.io.BufferedInputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import org.apache.http.util.ByteArrayBuffer; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class readxmlActivity extends Activity{ @Override protected void onCreate(BundlesavedInstanceState){ // TODOAuto-generatedmethodstub super .onCreate(savedInstanceState); setContentView(R.layout.readxml); TextViewtv = (TextView)findViewById(R.id.TextView01); Stringmsg = "" ; try { URLurl = new URL( " http://www.az1314.com/txt/00.txt " ); // 要访问的数据文件 URLConnectioncon = url.openConnection(); InputStreamis = con.getInputStream(); BufferedInputStreambis = new BufferedInputStream(is); ByteArrayBufferbaf = new ByteArrayBuffer( 100 ); int current = 0 ; while ((current = bis.read()) != - 1 ){ baf.append(( byte )current); } msg = new String(baf.toByteArray()); } catch (Exceptione){ // TODO:handleexception msg = e.getMessage(); } tv.setText(msg); } } 方法讲解: URL共有六种构造方法,分别如下: URL(Stringspec) 通过传进来的字符串分析,创建一个新的URL实例。 URL(URLcontext,Stringspec) 通过传进来的字符串分析,创建一个新的URL实例。需要一个URL的参数 URL(URLcontext,Stringspec,URLStreamHandlerhandler) 通过传进来的字符串分析,创建一个新的URL实例 URL(Stringprotocol,Stringhost,Stringfile) 使用给定的参数创建一个URL实例,需要指定协议,主机文件名 URL(Stringprotocol,Stringhost, int port,Stringfile) 使用给定的参数创建一个URL实例,需要指定协议,主机,端口和文件名 URL(Stringprotocol,Stringhost, int port,Stringfile,URLStreamHandlerhandler) 使用给定的参数创建一个URL实例,需要指定协议,主机,端口、文件名和处理程序 URLConnection介绍: 用以来实现提供一个具有特定协议类的连接源。 getInputStream 主要用来读取一个URLConnection的资源数据,返回一个InputStream,本文将使用这个方法获取数据 在此不多介绍URLConnection此类,感兴趣的朋友可以查看一下SDK。代码如上,运行效果图: 因为在模拟器运行。 出现乱码了,如果你有真机不妨在真机上试试。 Tip: 访问外部网络需要在配置文件中给予权限,如果你没有权限将会出现如下界面: 权限代码如下: android:versionCode="1" android:versionName="1.0"> < application android:icon ="@drawable/icon" android:label ="@string/app_name" > < activity android:name =".networkActivity" android:label ="@string/app_name" > </ activity > < activity android:name =".readxmlActivity" >< intent-filter > < action android:name ="android.intent.action.MAIN" /> < category android:name ="android.intent.category.LAUNCHER" /> </ intent-filter ></ activity > </ application > < uses-permission android:name ="android.permission.INTERNET" /> 至此四种数据存储完结。 源码下载: /Files/TerryBlog/NetworkdDemo.rar 本文转自 terry_龙 51CTO博客,原文链接:http://blog.51cto.com/terryblog/336756,如需转载请自行联系原作者

优秀的个人博客,低调大师

VirtualBox Network设置的NAT和Bridged Adapter模式区别

区别: NAT模式下,虚拟机仍然可以访问网络,但是从网络接收者的眼中看来,这些网络请求都来自宿主机,而感知不到虚拟机。外网也无法访问虚拟机网络。虚拟机和宿主机器的IP地址在不同的子网,比如192.168.1.1和192.168.1.2。 帮助文档提到,如果你只是想单纯的在虚拟机里访问网络,使用NAT足够了。 Host-Only: 虚拟机仍然被分配一个IP地址,但是只有在虚拟机运行的环境里可以访问这个IP地址。该地址对外界不可见。 Bridged:虚拟机有独立的IP地址,能被网络上其他主机访问。 VirtualBox的帮助文档: https://www.virtualbox.org/manual/ch06.html VirtualBox可以虚拟化以下六种物理网卡: VirtualBox官网有个表格,非常清晰地展示了几种网络模式的区别: 第一列VM &

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册