自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yanir的博客

共同探讨,共同进步

  • 博客(61)
  • 资源 (22)
  • 问答 (7)
  • 收藏
  • 关注

原创 LeetCode:116. 填充每个节点的下一个右侧节点指针(java)

力扣题目方法1:广度优先搜索深度优先搜索想半天想不出来,但是广度优先搜索仔细想就写出来了.....递归真的是玄学!这个方法还蛮容易想得到的,借助一个队列就能完成。/*// Definition for a Node.class Node { public int val; public Node left; public Node right; public Node next; public Node() {}

2022-05-25 17:08:01 170

原创 LeetCode :617. 合并二叉树(java版)

力扣思路不难,下笔难...我泰菜了(灬ꈍ ꈍ灬)方法1:广度优先搜索/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; 构造函数: * TreeNode() {} * TreeNode(int val) { this.val = val; }.

2022-05-25 10:03:45 375

原创 LeetCode:695. 岛屿的最大面积(java)

题目 一看就是经典的广/深度优先搜索算法,对于这两种算法,我比较喜欢前者,提前申明不是因为前者渣!而因为前者好理解,好上手。至于为什么说他渣,你细品,品不到就去看看我上一篇博客叭~废话不多说,直接上解题和代码,基本思路其实跟上一题差不多!就是多了两层循环遍历。方法1:广度优先搜索先回顾一下算法流程重点:queue是鱼塘,先广撒网(for);再判断是非(if)class Solution { public int maxAreaOfIsland(int[][] grid)...

2022-05-13 15:04:41 261

原创 LeetCode:733. 图像渲染(java版)——BFS是渣男/女,DFS是方知有

题外话:看完题目,是不是一头雾水。有疑问就对了,不知道出题者的语文老师看了有啥感想。题目意思其实很简单,就是给你一个初始坐标点(sr,sc),找和该点附近像素值相同的坐标,而这附近的定义就是上下左右,不包括斜对角;然后将这些像素值替换为新的像素值newColor。虽然题目是easy,但是对我而言不是easy༼༎ຶᴗ༎ຶ༽(so sad...话不多说,直接看解题方法吧!方法1:广度优先搜索BFS(Broad First Search)我们从给定的起点开始,进行广度优先搜索。...

2022-05-10 17:04:06 250

原创 LeetCode:567. 字符串的排列(java)

一开始以为只是简单的找子串,结果,是找子串的排列,我能想到的是暴力解法,也算是变相的滑动窗口,只是我是用HashMap来记录s1的(单)词频,官方解题是用数组。我觉得这题的关键点在通过比较字母数量来判断是否为子串的排列。【由于排列不会改变字符串中每个字符的个数,所以只有当两个字符串每个字符的个数均相等时,一个字符串才是另一个字符串的排列。】话不多说,直接上解题思路和代码!以下是三种解题方式:方法1:双循环采用双循环,外层循环是窗口移动,内层循环是大小为n1(即s1的长度)的窗口。用HashM..

2022-05-09 21:46:09 658 1

原创 LeetCode:167. 两数之和 II - 输入有序数组(java)

这题用暴力破解法O(n^2)通不过。1.可以用先减一个数,后用二分查找法寻找另一个数的方法。具体地,在数组中找到两个数,使得它们的和等于目标值,可以首先固定第一个数,然后寻找第二个数,第二个数等于目标值减去第一个数的差。利用数组的有序性质,可以通过二分查找的方法寻找第二个数。为了避免重复寻找,在寻找第二个数时,只在第一个数的右侧寻找。代码详见:LeetCode-Solution2.采用双指针法——缩减搜索空间双指针挺好理解的。但是我是凭感/直觉做的,具体的理论解释,我...

2022-05-01 15:33:58 1696

原创 LeetCode:283. 移动零(java)

方法1:加一个数组——以空间换时间class Solution { public void moveZeroes(int[] nums) { // 1.将结果放入新数组res int len=nums.length; int[] res=new int[len]; int i=0; int j=len-1; int pos=0; while(i<=j){ ...

2022-04-30 17:57:57 769

原创 LeetCode:189. 轮转数组(Java)

方法1:跳序轮转法——带标记,时间复杂度和空间复杂度均为O(n)因为有些特殊情况,会陷入循环,比如这个例子:我不知道怎么处理这种情况,所以直接搞个标记数组falgs[]来看看这个位置的数字是否被处理过。方法二来改进这个陷入循环的问题class Solution { public void rotate(int[] nums, int k) { // 1.跳序 轮转法——带标记,时间复杂度和空间复杂度均为O(n) int len=n...

2022-04-30 17:39:52 784

原创 RNN及其变体(LSTM、GRU)的介绍

先打个岔,区分一下recurrent neural network循环神经网络和recursive neural network递归神经网络。recurrent: 时间维度的展开,代表信息在时间维度从前往后的的传递和积累,可以类比markov假设,后面的信息的概率建立在前面信息的基础上,在神经网络结构上表现为后面的神经网络的隐藏层的输入是前面的神经网络的隐藏层的输出;recursive: 空间维度的展开,是一个树结构,比如nlp里某句话,用recurrent neural network来建模的话就

2022-03-25 11:35:28 2578

原创 数据挖掘算法 | DBSCAN, K-means++, Naive Bayes, Adaboosting, SVM, and Random Forest

最近在看一篇论文,里面用到以上几个分类器算法,简单回顾一下。DBSCANK-means++K-Means聚类算法原理 - 刘建平Pinard - 博客园k个初始化的质心的位置选择对最后的聚类结果和运行时间都有很大的影响,因此需要选择合适的k个质心。如果仅仅是完全随机的选择,有可能导致算法收敛很慢。那K-means++就是在K-means算法的基础上,多了一步选取优秀的初始聚类中心点,即,使k个中心点相隔较远。具体实现:Naive Bayes(朴素贝叶斯)带你.

2022-02-28 15:06:14 227

原创 GCN图卷积网络 | 介绍

0 前言通常,将GCN分为基于空间域spatial-based和基于谱域spectral-based."所谓的两类其实就是从两个不同的角度理解"[4],这也是我对两类的理解,因为从公式上看并没有较大区别,只是细节和适用场景不同,比如,图是否有向等。基于空间域的GCN关键在有aggregate的概念,将中心节点表示和相邻节点表示进行聚合,具体实现是用neighbor feature更新下一层的hidden state。代表模型有:NN4G(neural network for graph)、DCNN.

2022-02-25 16:43:10 3704

原创 python速记,持续更新...

time库#!/usr/bin/pythonimport timeprint "time.time(): %f " % time.time()print time.localtime( time.time() )print time.asctime( time.localtime(time.time()) )# output>>> time.time(): 1234892919.655932>>> (2009, 2, 17, 10, 48, 3

2021-12-31 16:33:43 317

原创 如何画一棵圣诞树送给你朋友~Python如何生成exe文件?

直接看原文吧!懒得复制粘贴了!【亲测有效】Python如何生成exe文件?带你一步一步地享受pycharm(超级细致,超级贴心),用,Pycharm,着,学超,详细

2021-12-22 17:25:18 1100

原创 Python中logging日志的用法

import loggingimport os# 路径获取root = os.path.dirname(os.path.realpath(__file__))# log_path = os.path.join(root, "example.log")# name = "example.log"debug = False# when debug is true, show DEBUG and INFO in screen# when debug is false, show DEBUG .

2021-12-14 10:17:11 1399 1

原创 numpy | 取矩阵非零元素

方式1:先提取矩阵中非零项;再误差计算obs_A = A.ravel()[np.flatnonzero(A)]obs_X = X.ravel()[np.flatnonzero(A)]error = np.linalg.norm(obs_A - obs_X)方式2:利用掩码矩阵计算# mask=~np.isnana(A)mask=(A==0)mask=~maskerror=np.linalg.norm(mask*A-maks*X)...

2021-11-21 11:13:38 4587

原创 交通时空数据预测·论文阅读

Spatial-Temporal Fusion Graph Neural Networks for Traffic Flow Forecasting摘要:由于不同道路之间复杂的空间相关性和时间模式的动态趋势,使得交通流时空数据预测成为一项具有挑战性的任务。现有的框架通常利用给定的空间邻接图和复杂的机制来建模空间和时间相关性。然而,不完全相邻连接的给定空间图结构的有限表示可能会限制这些模型的有效时空依赖学习。此外,现有的方法在解决复杂的时空数据时显得力不从心:它们通常使用单独的模块来处理时空相关性,或者它

2021-11-21 10:59:54 2797

原创 python-几种实现SVD的方式和区别

from sklearn.utils.extmath import randomized_svdfrom scipy.sparse.linalg import svdsimport numpy as np# data.shape(6, 4)data = np.array([[np.nan, 3, np.nan, 4], [3, np.nan, 4, np.nan], [np.nan, np.nan, 2, np..

2021-11-19 22:47:05 2318

原创 Anaconda下载及安装详细教程(图文)

Anacond的介绍Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 477MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。Conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换Anaconda包括Conda、Pyth

2021-10-25 22:03:45 24822 5

原创 向量/矩阵的特殊乘法运算

向量标量积(内积)标量积(又称点乘、点积、数量积):两个向量相乘得到一个标量。 几何意义:代数定义:向量积(外积)向量积(又称叉乘、叉积、矢量积):两个向量相乘得到一个向量。 向量积定义: 其中t向量大小:矩阵matmul product(普通乘积)即线性代数学学的,左行乘以右列:Hadamard product (哈达马积)...

2021-09-16 21:12:46 2188

原创 ONMF正交非负矩阵分解·论文总结

前言非负矩阵分解(Nonnegative matrix factorization,NMF)目前有着广泛的应用:环境、模式识别、多媒体、文本挖掘、DNA基因表达以及分类/聚类。NMF的研究追溯到1970sG. Golub的初步探索到Paatero[1]的广泛研究。Lee and Seung[2,3]在机器学习和数据挖掘领域对NMF的研究工作带来广泛的关注。他们揭示NMF因子(即F和G)与源数据有着部分相干性。他们强调了NMF和矢量量化VQ(本质是K-Means聚类)的区别。NMF与...

2021-09-10 09:07:54 2021

原创 机器学习领域几种距离度量方法metric详解

对scipy.spatial.distance.pdist

2021-06-08 19:52:11 7018 4

原创 CCF认证回顾

我们的毕业要求CCF200分,说实话,我真的很担心我毕业被卡在CCF上,然后这东西又贵,一次200,+会员费50。CCF一年有3次考试认证——3(4)月,9月。12月。认证具体时刻为周日下午1:30—5:30。可以带书籍资料。编译环境有C、C++、Java、Python等。编译器:C++有Dev和codeblock,Java有eclipse,Python有IDLE。(针不戳,我不会用IDLE的,3.6版本连行显示都没有)。我用codeblock编辑python。然后还自己去添加了python...

2021-04-14 15:07:53 3541 2

原创 CCF 202006-1 线性分类器

# 202006-1n,m=map(int,input().split())points=[] #n个点pars=[] #m组参数for i in range(n): x,y,label=input().split() points.append([int(x),int(y),label])for i in range(m): pars.append(list(map(int,input().split())))for p in pars: flag_A=0 fl...

2021-04-09 11:20:24 88

原创 CCF 201403-2 窗口 C++&python

题目三言两语开始回顾自己之前刷的题。然后,看到这题,输出是输入的窗口的编号,还在头疼编号怎么处理,用字典来存储吗?然后,翻看自己之前的代码,之前我是用窗口坐标二维数组的第5列来存储编号。hhhhh我真是个小机灵鬼~(自己之前敲得代码一个月不到就忘了,果然,你永远不可能两次踏进同一条河...)C++解题:#include <iostream> using namespace std;int main(){ //输入【这边当时用C++敲的时候,m,n没留意,和题目...

2021-04-06 13:35:11 92

原创 CCF 201812-2小明放学 python

题目感想emmmm这是所有第二题中里面我最不想写的一题,就是理不清思路,大概知道怎么算,但是就是理不清逻辑,以至于无法下手。本来都想放弃了,想着反正不会考原题,但是,抱着刷完的想法,看了别人的代码,还是敲完了。因为是借鉴别人的,所以这里放上原文链接。# 输入r,y,g=map(int,input().split()) #r1,y2,g3 红黄绿灯n=int(input())line=[]for i in range(n): f,t=map(int,input().split

2021-04-05 15:57:40 115

原创 CCF 201612-2 工资计算 Python

题目解题题目可以说是相当简单,但是我就是懒得算==最后还是手动计算,没有用for循环和列表。注意计算不要出错以及注意结果四舍五入取整,AC是没问题的。import math# 输入T=int(input())# 计算税前工资S=0if T<=3500: S=Telif T<=4955: S=(T-105)/0.97elif T<=7655: S=(T-455)/0.9elif T<=11255: S=(T-1255)/0.8elif T&

2021-04-04 16:21:23 114

原创 CCF 202006-2 稀疏向量 python

题目感(fei)想(hua)第一次拿了60分,运行错误,估计是后面4个测试点开销问题。简化解题,AC成功~(撒花✿✿ヽ(°▽°)ノ✿)忍不住感叹,python大法好,适合我这种编程渣渣~代码# 方法1:60分# 输入n,a,b=map(int,input().split())avec={}bvec={}for _ in range(a): i,v=map(int,input().split()) avec[i]=vfor _ in range(b): i,v=ma

2021-04-02 16:22:25 180 2

原创 CCF 201809-2 买菜 python

题目代码# 201809-2 买菜# 输入n=int(input())line=[]maxt=0for i in range(2*n): s,t=map(int,input().split()) line.append([s,t]) maxt=t if t>maxt else maxttim=[0]*maxt #时间轴# 计算聊天时长for l in line: s,t=l[0],l[1] for i in range(s,t): tim[i]+=1

2021-04-01 10:48:38 264 1

原创 ccf201604-2 俄罗斯方块 python

这边是废话看到这题的时候是在心神不宁的情况下写的,第一次写的时候拿了30分,第二次40分。。。然后就很绝望,放了一两天,今天重新拿起来再写。网上的代码又不想看(啊,我是真的懒得看别人的代码,特别是没有注释的那种...)然后,就硬着头皮想自己到底错哪了,结果显示的是错误,不是编译错误,那就是代码不够严谨呗,有些案例不能通过。在仔仔细细看了一遍代码以后,发现问题了。一开始我是把方块从下往上移动(从下往上我觉得快一点,加上4*4的矩阵后,没有为2的就OK)。就这样,聪明反被聪明误,我让俄罗斯方块直接横穿下

2021-03-30 20:53:57 341 4

原创 Knowledge Graph生物信息【论文阅读笔记】

Table of Contents写在前面一、应用:药物之间的相互作用预测Large-scale structural and textual similarity-based mining of knowledge graph to predict drug–drug interactions1.KG构建2.药物相似性度量3.模型二、应用:神经-图协同过滤算法 Neu...

2019-10-25 10:08:22 482

原创 操作系统——简答题

第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS结构设计第二章 进程的描述与控制 2.1 前趋图和程序执行 2.2 进程的描述 2.3 进程控...

2019-09-14 20:28:12 5107

原创 操作系统——名词解释

第一章 操作系统引论操作系统:是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。p8 分时系统:是指在一台主机上连接了多个配有显示器和键盘的终端并由此组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。p8 实时系统:是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任...

2019-09-14 20:25:09 10633 1

原创 拼夕夕2018年笔试题——小熊吃糖

有n只小熊,他们有着各不相同的战斗力。每次他们吃糖时,会按照战斗力来排,战斗力高的小熊拥有优先选择权。前面的小熊吃饱了,后面的小熊才能吃。每只小熊有一个饥饿值,每次进食的时候,小熊们会选择最大的能填饱自己当前饥饿值的那颗糖来吃,可能吃完没饱会重复上述过程,但不会选择吃撑。现在给出n只小熊的战斗力和饥饿值,并且给出m颗糖能填饱的饥饿值。求所有小熊进食完之后,每只小熊剩余的饥饿值。输入描述...

2019-09-11 15:11:15 229

原创 Codeup——2018 Problem B 数列

问题 B: 数列时间限制:1 Sec内存限制:32 MB题目描述编写一个求斐波那契数列的递归函数,输入n值,使用该递归函数,输出如下图形(参见样例)。输入输入第一行为样例数m,接下来有m行每行一个整数n,n不超过10。输出对应每个样例输出要求的图形(参见样例格式)。样例输入16样例输出 0 ...

2019-09-11 11:47:52 128

原创 HDU——1205 吃糖果

1205 吃糖果Time Limit: 6000/3000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 54965Accepted Submission(s): 15737Problem DescriptionHOHO,终于从Speakless手上赢走了所有...

2019-09-10 22:24:42 150

原创 Codeup——1907 Problem A 吃糖果

问题 A: 吃糖果时间限制:1 Sec内存限制:32 MB题目描述名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N=1,则名名第1天就吃掉它,共有1种方案;如果N=2,则名名可以第1...

2019-09-10 21:54:53 114

原创 PAT——1050 String Subtraction

1050String Subtraction(20分)Given two stringsS​1​​andS​2​​,S=S​1​​−S​2​​is defined to be the remaining string after taking all the characters inS​2​​fromS​1​​. Your task is simply to calcu...

2019-09-10 21:25:36 105

原创 递归——全排序 & 八皇后

1.全排序问题例:输出{1,2,3}的全排序#include <cstdio>#include <algorithm>using namespace std;const int MAXSIZE=11;int count=0;int n,P[MAXSIZE];bool hashTable[MAXSIZE]={false};void generateP(...

2019-09-10 16:52:37 82

原创 PAT——1041 Be Unique

1041Be Unique(20分)Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1,10​4​​]. T...

2019-09-09 21:36:38 113

原创 Codeup——2066 Problem B: 分组统计​​​​​​​

问题 B: 分组统计时间限制:1 Sec内存限制:32 MB提交:1754解决:440题目描述先输入一组数,然后输入其分组,按照分组统计出现次数并输出,参见样例。输入输入第一行表示样例数m,对于每个样例,第一行为数的个数n,接下来两行分别有n个数,第一行有n个数,第二行的n个数分别对应上一行每个数的分组,n不超过100。输出输出m行,格式参见样例,按从...

2019-09-09 17:52:38 166

文学1-3班 python课程《实验8:元组、字典与集合》代码

文学1-3班 python课程《实验8:元组、字典与集合》代码

2021-11-24

COVID-19新冠疫情预测代码(含数据集)COVID-19 prediction.zip

COVID-19新冠疫情预测代码(含数据集)COVID-19 prediction.zip

2021-04-13

微博情感分析代码(含数据集)weibo emotional analyse.zip

微博情感分析代码(含数据集)weibo emotional analyse.zip

2021-04-13

实验室安全考试试题题库

实验室安全考试试题题库

2021-04-13

《数值计算方法》课后题答案(湖南大学-曾金平).pdf

《数值计算方法》课后题答案(湖南大学-曾金平).pdf

2021-04-13

PHP7从入门到精通.zip

《PHP 7从入门到精通(视频教学版)》循序渐进地介绍了PHP 7开发动态网站的主要知识和技能,提供了大量的PHP应用实例供读者实践。每一章节都清晰讲述了代码作用及其编写思路,使读者能在*短时间内迅速掌握PHP的应用开发技能。 全书共23章,分别介绍了PHP 7的基本概念、PHP服务器环境配置、PHP的基本语法、PHP的语言结构、字符串和正则表达式、数组、时间和日期、面向对象编程、错误处理和异常处理、PHP与Web页面交互、文件与目录操作、图形图像处理、Cookie和会话管理、MySQL数据库基础、PHP操作MySQL数据库、PDO数据库抽象类库、JavaScript编程基础、PHP与XML技术、PHP与Ajax的综合应用、Smarty模板、Zend framework框架等,*后通过一个论坛系统实战案例和一个酒店管理系统实战案例,使读者进一步巩固所学的知识,提高综合实战能力。 本书既适合PHP的初学者以及广大网站开发人员阅读,也适合高等院校和培训学校相关专业的师生参考。

2019-06-10

网络编程多点聊天实验.zip

2.多点聊天程序:采用C/S模式,服务器可以与多个客户机建立连接,为多个客户机服务。服务器接收客户机发来的消息,然后将它转发给聊天室的其他客户机,从而实现多个客户机之间的交换,服务器动态统计进入聊天室的客户机数目,并显示出来。 2.多点聊天程序:①从CSocket类派生出自己所需的WinSock类;②利用CSocketFile类、CArchive类和CSocket类的合作来实现网络进程之间的数据传输;③利用链表管理多个动态客户机的套接字,实现服务器和所有的聊天客户机所显示信息的同步更新。

2019-06-10

网络编程点对点聊天实验.zip

点对点聊天程序:采用C/S模式,分为客户端程序和服务器端程序。客户端程序和服务器端程序通过网络交换聊天的字符串内容,并在窗口的列表框中显示;

2019-06-10

网络编程实用教程(第三版).zip

第 1章 概述 1 1.1 网络编程相关的基本概念 1 1.1.1 网络编程与进程通信 1 1.1.2 Internet中网间进程的标识 3 1.1.3 网络协议的特征 7 1.2 三类网络编程 10 1.2.1 基于TCP/IP协议栈的网络编程 10 1.2.2 基于WWW应用的网络编程 10 1.2.3 基于.NET框架的Web Services网络编程 10 1.3 客户机/服务器交互模式 13 1.3.1 网络应用软件的地位和功能 13 1.3.2 客户机/服务器模式 14 1.3.3 客户机与服务器的特性 15 1.3.4 容易混淆的术语 16 1.3.5 客户机与服务器的通信过程 16 1.3.6 网络协议与C/S模式的关系 17 1.3.7 错综复杂的C/S交互 17 1.3.8 服务器如何同时为多个客户机服务 18 1.3.9 标识一个特定服务 20 1.4 P2P模式 21 1.4.1 P2P技术的兴起 21 1.4.2 P2P的定义和特征 21 1.4.3 P2P的发展 22 1.4.4 P2P的关键技术 22 1.4.5 P2P系统的应用与前景 22 习题 23 第 2章 套接字网络编程基础 24 2.1 套接字网络编程接口的产生与发展 24 2.1.1 问题的提出 24 2.1.2 套接字编程接口起源于UNIX操作系统 25 2.1.3 套接字编程接口在Windows和Linux操作系统中得到继承和发展 25 2.1.4 套接字编程接口的两种实现方式 25 2.1.5 套接字通信与UNIX操作系统的输入/输出的关系 26 2.2 套接字编程的基本概念 27 2.2.1 什么是套接字 27 2.2.2 套接字的特点 28 2.2.3 套接字的应用场合 30 2.2.4 套接字使用的数据类型和相关的问题 30 2.3 面向连接的套接字编程 32 2.3.1 可靠的传输控制协议 32 2.3.2 套接字的工作过程 33 2.3.3 面向连接的套接字编程实例 34 2.3.4 进程的阻塞问题和对策 40 2.4 无连接的套接字编程 43 2.4.1 高效的用户数据报协议 43 2.4.2 无连接的套接字编程的两种模式 43 2.4.3 数据报套接字的对等模式编程实例 45 2.5 原始套接字 47 2.5.1 原始套接字的创建 47 2.5.2 原始套接字的使用 48 2.5.3 原始套接字应用实例 49 习题 51 第3章 WinSock编程 53 3.1 WinSock概述 53 3.2 WinSock库函数 55 3.2.1 WinSock的注册与注销 55 3.2.2 WinSock的错误处理函数 58 3.2.3 主要的WinSock函数 61 3.2.4 WinSock的辅助函数 74 3.2.5 WinSock的信息查询函数 77 3.2.6 WSAAsyncGetXByY类型的扩展函数 79 3.3 网络应用程序的运行环境 82 习题 84 第4章 MFC编程 85 4.1 MFC概述 85 4.1.1 MFC是一个编程框架 85 4.1.2 典型的MDI应用程序的构成 87 4.2 MFC和Win32 89 4.2.1 MFC对象和Windows对象的关系 89 4.2.2 几个主要的类 91 4.3 CObject类 95 4.3.1 CObject类的定义 95 4.3.2 CObject类的特性 96 4.4 消息映射的实现 98 4.5 MFC对象的创建 102 4.5.1 MFC对象的关系 102 4.5.2 MFC提供的接口 104 4.5.3 MFC对象的创建过程 104 4.6 应用程序的退出 107 习题 107 第5章 MFC WinSock类的 编程 109 5.1 CAsyncSocket类 110 5.1.1 使用CAsyncSocket类的一般步骤 110 5.1.2 创建CAsyncSocket类对象 111 5.1.3 关于CAsyncSocket类可以接受并处理的消息事件 112 5.1.4 客户端套接字对象请求连接到服务器端套接字对象 114 5.1.5 服务器接收客户机的连接请求 115 5.1.6 发送与接收流式数据 116 5.1.7 关闭套接字 118 5.1.8 错误处理 118 5.1.9 其他成员函数 119 5.2 CSocket类 120 5.2.1 创建CSocket对象 120 5.2.2 建立连接 120 5.2.3 发送和接收数据 120 5.2.4 CSocket类、CArchive类和CSocketFile类 121 5.2.5 关闭套接字和清除相关的对象 122 5.3 CSocket类的编程模型 122 5.4 用CAsyncSocket类实现聊天室程序 123 5.4.1 实现目标 123 5.4.2 创建客户端应用程序 124 5.4.3 客户端程序的类与消息驱动 134 5.4.4 客户端程序主要功能的代码和分析 135 5.4.5 创建服务器端程序 142 5.4.6 服务器端程序的流程和消息驱动 144 5.4.7 点对点交谈的服务器端程序主要功能的代码和分析 145 5.5 用CSocket类实现聊天室程序 151 5.5.1 聊天室程序的功能 151 5.5.2 创建聊天室的服务器端程序 151 5.5.3 聊天室服务器端程序的主要实现代码和分析 154 5.5.4 创建聊天室的客户端程序 162 5.5.5 聊天室客户端程序的主要实现代码和分析 163 习题 170 实验 170 第6章 WinInet编程 172 6.1 MFC WinInet类 172 6.1.1 概述 172 6.1.2 MFC WinInet所包含的类 173 6.1.3 使用WinInet类编程的一般步骤 174 6.1.4 创建CInternetSession类对象 175 6.1.5 查询或设置Internet请求选项 176 6.1.6 创建连接类对象 177 6.1.7 使用文件检索类 178 6.1.8 重载OnStatusCallback函数 179 6.1.9 创建并使用网络文件类对象 180 6.1.10 CInternteException类 183 6.2 用MFC WinInet类实现FTP客户端 183 6.2.1 程序要实现的功能 183 6.2.2 创建应用程序的过程 184 习题 186 实验 187 第7章 WinSock的多线程 编程 188 7.1 WinSock为什么需要多线程编程 188 7.1.1 WinSock的两种I/O模式 188 7.1.2 两种模式的优缺点及解决方法 189 7.2 Win32操作系统下的多进程多线程机制 189 7.2.1 Win32 OS是单用户多任务的操作系统 189 7.2.2 Win32 OS是支持多线程的操作系统 190 7.2.3 多线程机制在网络编程中的应用 191 7.3 VC++对多线程网络编程的支持 192 7.3.1 MFC支持的两种线程 192 7.3.2 创建MFC的工作线程 193 7.3.3 创建并启动用户界面线程 195 7.3.4 终止线程 198 7.4 多线程FTP客户端实例 200 7.4.1 编写线程函数 200 7.4.2 添加事件处理函数 206 习题 208 第8章 WinSock的I/O模型 209 8.1 select模型 210 8.2 WSAAsyncSelect异步I/O模型 212 8.3 WSAEventSelect事件选择模型 216 8.4 重叠I/O模型 221 8.4.1 重叠I/O模型的优点 221 8.4.2 重叠I/O模型的基本原理 221 8.4.3 重叠I/O模型的关键函数和数据结构 222 8.4.4 使用事件通知实现重叠模型的步骤 225 8.4.5 使用完成例程实现重叠模型的步骤 227 8.5 完成端口模型 229 8.5.1 什么是完成端口模型 229 8.5.2 使用完成端口模型的方法 230 习题 238 第9章 HTTP及编程 239 9.1 HTTP 239 9.1.1 HTTP的背景 239 9.1.2 HTTP的内容 240 9.1.3 HTTP消息的一般格式 242 9.1.4 HTTP请求的格式 243 9.1.5 HTTP响应的格式 245 9.1.6 访问认证 248 9.1.7 URL编码 249 9.1.8 HTTP的应用 250 9.2 利用CHtmlView类创建Web浏览器型的应用程序 250 9.2.1 CHtmlView类与WebBrowser控件 250 9.2.2 CHtmlView类的成员函数 251 9.2.3 创建一个Web浏览器型的应用程序的一般步骤 256 9.3 Web浏览器应用程序实例 261 9.3.1 程序实现的目标 261 9.3.2 创建实例程序 262 习题 265 实验 265 第 10章 电子邮件协议与编程 267 10.1 电子邮件系统的工作原理 267 10.1.1 电子邮件的特点 267 10.1.2 电子邮件系统的构成 267 10.1.3 电子邮件系统的实现 268 10.2 简单邮件传送协议 270 10.2.1 概述 270 10.2.2 SMTP客户机与SMTP服务器之间的会话 270 10.2.3 常用的SMTP命令 271 10.2.4 常用的SMTP响应码 273 10.2.5 SMTP的会话过程 274 10.2.6 使用WinSock来实现电子邮件客户机与服务器的会话 274 10.3 电子邮件信件结构详述 275 10.3.1 Internet文本信件的格式标准——RFC 822 275 10.3.2 信件的头部 276 10.3.3 构造和分析符合RFC 822标准的电子信件 281 10.4 MIME编码解码与发送附件 281 10.4.1 MIME概述 281 10.4.2 MIME定义的新的信头字段 282 10.4.3 MIME邮件的内容类型 283 10.4.4 MIME邮件的编码方式 292 10.5 POP3与接收电子邮件 294 10.5.1 POP3 294 10.5.2 POP3的会话过程 294 10.5.3 POP3会话的3个状态 295 10.5.4 POP3标准命令 296 10.5.5 接收电子邮件的一般步骤 298 10.6 接收电子邮件的程序实例 299 10.6.1 实例程序的目的和实现的技术要点 299 10.6.2 创建应用程序的过程 301 10.7 发送电子邮件的程序实例 302 10.7.1 实例程序的目的和实现的技术要点 302 10.7.2 创建应用程序的过程 303 习题 305 参考文献 307

2019-06-10

计算机网络安全.zip

计算机网络安全是指利用网络管理控制和技术措施,保证在一个网络环境里,数据的保密性、完整性及可使用性受到保护。计算机网络安全包括两个方面,即物理安全和逻辑安全。物理安全指系统设备及相关设施受到物理保护,免于破坏、丢失等。逻辑安全包括信息的完整性、保密性和可用性。

2019-06-10

汇编语言课程资料.zip

汇编语言是一种用于电子计算机、微处理器、微控制器,或其他可编程器件的低级语言。在不同的设备中,汇编语言对应着不同的机器语言指令集。一种汇编语言专用于某种计算机系统结构,而不像许多高级语言,可以在不同系统平台之间移植。 使用汇编语言编写的源代码,然后通过相应的汇编程序将它们转换成可执行的机器代码。这一过程被称为汇编过程。 汇编语言使用助记符(Mnemonics)来代替和表示特定低级机器语言的操作。特定的汇编目标指令集可能会包括特定的操作数。许多汇编程序可以识别代表地址和常量的标签(Label)和符号(Symbols),这样就可以用字符来代表操作数而无需采取写死的方式。普遍地说,每一种特定的汇编语言和其特定的机器语言指令集是一一对应的。 许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编寫工具经常会提供巨集,它们也被称为宏汇编器。 现在汇编语言已不像其他大多數的程序設計語言一樣被廣泛用于程序設計,在今天的實際應用中,它通常被應用在底層硬件操作和高要求的程序優化的场合。驅動程序、嵌入式操作系统和實時運行程序都会需要汇编語言。

2019-06-10

Sniffer使用教程.pdf

Sniffer软件是NAI公司推出的一款一流的便携式网管和应用故障诊断分析软件,不管是在有线网络还是在无线网络中,它都能够给予网管管理人员实时的网络监视、数据包捕获以及故障诊断分析能力。对于在现场运行快速的网络和应用问题故障诊断,基于便携式软件的解决方案具备最高的性价比,却能够让用户获得强大的网管和应用故障诊断功能。

2019-06-10

0801网络嗅探器Sniffer_32位.rar

Sniffer 是一个HTTP协议的网络嗅探器,协议分析器和HTTP文件重建工具。它可以捕捉局域网内的含有HTTP协议的IP数据包,并对其内容进行解码分析。通过它,您可以看到现在都访问了哪些网页,这些网页的内容是什么。

2019-06-10

07科来网络分析系统20150721.rar

科来网络分析系统是一款便携式网络分析系统,支持有线和无线网络抓包分析,十分便于网管人员安装部署。帮助网管人员在各种网络问题中,快速准确的找到问题根源。它对网络中所有传输的数据包进行解码、检测、分析、诊断,帮助网管人员排除网络事故,规避安全风险,提高网络性能,增大网络可用性价值。 快速查找和排除网络故障; 找到网络瓶颈提升网络性能; 发现和解决各种网络异常危机,提高安全性; 管理资源,统计和记录每个节点的流量与带宽; 规范网络,查看各种应用,服务,主机的连接,监视网络活动; 管理网络应用。

2019-06-10

网络管理(雷震甲)实验报告+实验要求.zip

网络管理(雷震甲)实验报告+实验要求 本书根据网络管理课程教学大纲的要求,以SNMP协议为基础讨论了网络管理系统的体系结构、管理功能域、协议操作规范、管理信息库组成、远程网络监视以及网络管理系统的安全机制。本书还介绍了网络管理的实用技术,包括Windows中的网络管理工具以及广泛使用的网络管理和分析软件。最后本书讨论了网络测试和网络性能评价的标准、方法和工具。   本书既可作为高等学校计算机和通信专业本科生的教科书,也可供相关专业人员参考使用。

2019-06-10

计算机网络管理(雷震甲)(第三版)6-9.zip

本书根据网络管理课程教学大纲的要求,以SNMP协议为基础讨论了网络管理系统的体系结构、管理功能域、协议操作规范、管理信息库组成、远程网络监视以及网络管理系统的安全机制。本书还介绍了网络管理的实用技术,包括Windows中的网络管理工具以及广泛使用的网络管理和分析软件。最后本书讨论了网络测试和网络性能评价的标准、方法和工具。   本书既可作为高等学校计算机和通信专业本科生的教科书,也可供相关专业人员参考使用。

2019-06-10

计算机网络管理(雷震甲)(第三版)1-5.zip

本书根据网络管理课程教学大纲的要求,以SNMP协议为基础讨论了网络管理系统的体系结构、管理功能域、协议操作规范、管理信息库组成、远程网络监视以及网络管理系统的安全机制。本书还介绍了网络管理的实用技术,包括Windows中的网络管理工具以及广泛使用的网络管理和分析软件。最后本书讨论了网络测试和网络性能评价的标准、方法和工具。   本书既可作为高等学校计算机和通信专业本科生的教科书,也可供相关专业人员参考使用。

2019-06-10

Leecode初级算法_数组篇_实例

本资料为博客中对应的Leecode中初级算法的数组题代码,编程语言为java

2019-03-14

java语言程序设计一书的demo实例

该文档代码主要为有关于java的基础知识,为新手定制,可以仿照上面代码进行实际编写,参考教材《java语言程序设计》

2019-03-14

微信小程序之个人简历

微信小程序个人简历制作,传统的简历以一个文档的形式存在,现如今可以借助微信小程序平台制作个性化的简历。&lt;!--index.wxml--&gt; 获取头像昵称 {{userInfo.nickName}} &lt;!-- {{title}} --&gt; &lt;!-- {{motto}} --&gt; &lt;form class='check' bindsubmit='submit'&gt; 我的名字? &lt;input placeholder='请正确回答问题' background-color:#eee;' bindinput='inputCorrect'&gt; &lt;/input&gt; &lt;/form&gt; 回答错误! <button loading='{{loading}}' plain='true' hover-class='button-hover' bindtap='check'

2019-03-14

python基础知识

该文档代码主要为有关于python的基础知识,为新手定制,可以仿照上面代码进行实际编写

2018-08-03

MibBrowser_FreeTool_64bit.exe

MIB Browser是一个免费的MIB编译软件应用程序,在网络软件下提交,由KSSoft for Windows提供。 MIB浏览器的评论尚未完成,但它已在PC上由编辑进行测试。 如果您想提交对该软件下载的评论,我们欢迎您的意见,并鼓励您向我们提交一些内容! MIB Browser显示SNMP MIB变量的层次结构,请求SNMP代理 MIB Browser允许您以树的形式查看SNMP MIB变量的层次结构,并为您提供有关每个节点的其他信息。 使用MIB Browser,您可以轻松加载(编译)标准和专有MIB文件,查看和操作SNMP代理中可用的数据。 MIB浏览器可以执行SNMP Get和Get_Next请求,允许您检查特定SNMP代理上计数器的适当性和当前值。

2003-09-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除