- 博客(44)
- 资源 (1)
- 收藏
- 关注
原创 POP3客户端代码的实现
这个是本学期课程互联网应用的大作业,由一个独自完成。具体资源可以在我的主页免费下载,应该吧。我记得我设置为免费的。要求如下更加具体的应该去看我的设计报告,这里不能上传。光看下面的代码不太好看懂。去资源里下载就可以了,免费的。不是免费的踢我,我改一下。复制代码请注意我的注释有的是中文,小心过不了编译器。然后我C语言用的是C99的,环境是乌班图。...
2022-07-22 08:57:31 386 1
原创 Dynamic Host Configuration Protocol
一.两个用于描述协议的工具1.1 MSC(Message Sequence Chart)消息序列图包括:实体、消息和动作,以及时间线。 其作用是从整体的交互上上描述协议的功能。之所以说是整体上,是因为其涵盖了协议实现上的全部实体,区别于STD只描述一个实体。交互由message和action来体现。电话呼叫时的MSC图:可以看出,entity产生action,action产生message,message又往往带来其他entity的action。如何画出一张MSC?...
2022-05-30 20:29:11 430
原创 文件传输协议--FTP
一.FTP模型FTP client在客户端提供了一个user interface,这是用户使用FTP系统进行文件操作的接口。在user interface下,用户可以使用user command进行文件操作。user command和Linux command非常像。在后续会有介绍。Client PI全名为Client Protocol Interpreter,作用是进行user command和FTP command的转化(两者的区别可以看作是源代码和机械码、ASCII形式的域名和二进制形式的
2022-05-27 17:30:31 833
原创 简单文件传输协议TFTP
一.简单文件传输协议介绍文件传输协议规范了本地从远程服务器上访问文件的方式。文件传输协议分为两类:1.online-access 和 2.whole file copying。前者的代表协议为NFS,类似于共享文档,在本地对文件的修改会影响服务器上的文件。而后者本质上是复制:向服务器上传文件(把本地文件copy到服务器上)和从服务器下载文件(把文件copy到本地)。对一个副本的修改,不会影响原本的文件。TFTP的全称为Trivial File Transfer Protocol,与FTP相比较为
2022-05-27 10:30:08 6342
原创 Lesson 7 Edge I
一.图像分割与不连续图像分割(segmentation)的目的是把图像中的像素分组,每组像素和图像中的物体强相关。图像分割需要确定图像中的不连续处,不连续处(discontinuity)包括孤立点、线段和边缘(edge)。我们首先介绍edge,其定义了图像中物体的形状。边缘像素的特点是其往往是像素值发生突变的像素;而物体的内点则不同:在一个物体里,各像素的值波动不大。所以edge detection(边缘检测)的思想就是找到那些像素值发生突变的像素。这个突变有以下几种:要么是斜坡(ram
2022-05-10 15:30:25 2141
原创 Lesson 6 Image Filters
一.Image Quality Measurement1.1 SNR(信噪比)Signal-to-Noise Ration信噪比定义为有用的信号的功率与噪声信号功率之比的对数,单位为dB。信噪比越高,表示噪声图片的质量越好。1.2 MSE(均方误差)Mean Squared ErrorI(x,y)为原图片,I(x',y')为噪声图片。MN为像素数。很显然,MSE越大,表明noise image和原图的误差越大,质量越低。1.3 PSNR(Peak SNR)其定义基于M
2022-05-10 10:20:46 205
原创 Lesson 5 Color Image
一.人类视觉系统(Human Vision System)HVS1.1可见光的物理表示光,据我们高中的物理知识可知具有波粒二象性。而对于与HVS相关的可见光(400nm - 700nm),我们主要关心其波动性。我们知道可见光(visible light)的能量分布再400nm-700nm之间,据此我们可以绘制功率密度曲线P(f),用以描绘可见光在各个频率上的能量分布情况。P(f)就是可见光的物理表示。值得注意的是,在上学期的课程中学到过,我们需要将可见光的物理表示和HVS对其的反应区别开。我
2022-05-09 17:03:20 798
原创 C/Linux网络编程VI——UDP客户端和服务器端通信模型
程序一服务器端仅仅打印从客户端受到的字符串。客户端仅仅发一次字符串给服务器端。#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <errno.h>#include <pthread.h>#include <sys/socket.h>#include <arpa/inet.h>#define SERV_PORT 95...
2022-05-08 23:36:11 646
原创 Lesson 2 网络编程的基本概念
根据教师ppt,介绍网络编程(Network Programming)的基本概念,展示一些简单的程序和一些基本的概念(进程,系统调用,文件标识符,信号)。一.Network Programming教师给出的定义:可见:1.首先,网络编程的目的是为了写出能够利用network进行远程通信的程序(program)(程序一旦运行就可以被认为是进程,而进程是通信的对象或说端点)。2.其次,这里由于是在讲编程,所以用了术语program。准确的说法应该是process,因为网络通信的端点是进程。进
2022-05-07 22:01:25 735
原创 Lesson 4 Image Transformation
一开始的时候,我以为本节课的内容是DCT等的空间域到频率域的变换,但其实只是在空间域对图片进行两种运算。space domain transformation:1.algebraic transformation2.geometric transformation一.Space Domain Processing由于数字图片可以看作是矩阵f(x,y),所以Space Domain Processing可以看作是以一张或多张图片为自变量(input image),一张图片为因变量(outp
2022-05-06 22:23:55 268
原创 Lecture 3 直方图及其应用
一.Histogram直方图可以分为两种,一种是grey-scale histogram,另一种是color histogram。其中color histogram可以转化为一张或者多张灰度直方图。1.1灰度直方图的定义及其性质我们知道,一个灰度图可以表达为f(i,j),f为对应坐标像素的quantization level。当量化所用的比特为8个时,quantization level的范围是0~255的整数。基于此,灰度直方图是这样的一个映射,其定义域为灰度图的quantization
2022-05-01 16:39:14 892
原创 数字图像处理(DIP)的基本概念
一.什么是digital image?Image可以看作是一个二维函数f(x,y),x和y代表了坐标,而f代表指定坐标位置的像素的intensity(或是grey level,两者通用)。当f(x,y)的x,y和f均为有限离散值的时候,我们称该image为digital image。显而易见,digital image由有限个像素组成,可以看成一个二维数组。二.什么是digital image processing?Digital image processing(简称DIP),在本课程和教材的
2022-04-30 18:07:19 2060
原创 C/Linux网络编程III--套接字与两个重要的结构体
介绍了socket和套接字地址,以及两者关系(一个socket需要与一个套接字地址绑定);介绍了两个与之相关的结构体socketaddr和socketaddr_in。
2022-03-29 22:21:14 234
原创 Linux修改文件---vim的使用
讲一些实用的、简单的命令。一.进入vim格式: vim+filename(可以包括扩展名)作用:(在当前目录下)若相应的文件存在,则视为打开该文件;否则,创建该文件。vim Hello.javavim -r Hello.java二.vim的三种模式vim有三种模式:一般模式,插入模式和命令模式。我们在shell键入vim命令打开文件后,进入的是一般模式。插入模式就是用来编辑的。可以键入字符,使用backspace键删除字符,使用方向键移动光标位置。一般模式对于我们有用的
2022-03-29 13:49:16 2820
原创 C/Linux网络编程I--网络分层模型
首先讲述网络分层模型与协议,引出socket与网络编程的的概念。目录一.网络分层模型与协议概述1.1 是谁在利用计算网络通信?为什么计算机网络存在这么多协议?1.2 怎么识别通信的双方进程?网络中的这么地址是干嘛用的?1.3 五层协议栈是如何实现进程通信的?1.3.2 从运输层到网络层1.3.3 从网络层到数据链路层1.3.4 从数据链路层到物理层1.3.5 物理层二.网络编程一.网络分层模型与协议概述简单讲一下上述两个概念,详细的请移步计算机网络教程。想
2022-03-28 21:32:47 328
原创 HTML5快速上手
为了学习交互式编程这门课,需要一些基础的HTML的知识。但是为了节约时间,不可能学习得太深入,只需要学习HTML的一个适宜的子集即可。下面是从老师的ppt和B站上的基础课总结来的,供我做项目和期末时查看。一.HTML简介简介是为了理解HTML的本质和特点,以便于我记忆HTML的语法和具体使用HTML。下面以罗列的形式说明HTML:1.HTML是一门标记性语言(markup language),而不是一门编程语言(language)。它的作用是提供网页的基本结构和内容,而不是描述网页的行为。2
2022-03-22 13:21:58 462
原创 Linux OS -- Working with Files
前面讲述了Linux OS的file syste和working with directory,而这回开始working with files。目录一.Working with Files1.1 create a text file and delete a file1.2 显示文件内容1.3通过复制创建文件、重命名1.4统计、查找1.5 I/O重定向二.使用vi编辑文件2.1 两种模式的切换2.2保存并退出2.3 光标移动命令2.4滚屏命令2.5 删除.
2022-03-17 06:48:41 107
原创 Linux OS -- Working with Files
前面讲述了Linux OS的file syste和working with directory,而这回开始working with files。
2022-03-16 10:27:42 909 1
原创 Linux File System and Working with Directory
本文基于PPT Lab02的内容,讲述Linux File System和目录(directory)的相关操作。还有一些最基本的账户管理的知识。
2022-03-16 08:25:25 603
原创 2021-09-13结构体初步
0.内容概述 a.结构体和结构体成员 b.结构体声明语法 c.结构体初始化1.结构体和结构体成员结构体是自定义的数据类型,其成员可以是任何类型:基本数据类型,数组,指针,结构体等等。结构体变量可以被这样定义:一些相关联的值的集合。这实际上和我们对象的概念很接近:结构体变量可以被认为是object,而其成员类似于object的field(只不过Java提供了权限访问修饰符,而C语言没有)。区别在于:对象一般而言会有其method,而结构体变量没有,...
2021-09-14 10:23:01 66
原创 2021-09-13指针初步
0.内容概述 a.地址,指针 b.指针类型,指针类型的作用,解引用,指针运算 c.野指针 d.基本语法 e.数组名1.地址,指针,指针类型计算机使用地址标识内存单元(1 Byte)。对于32位机器而言,有32根地址线,能够标识2^32个内存单元,共4GB。每一个地址都对应着唯一的内存单元,这为我们取得数据提供了一种新的思路。指针就是存储地址的变量,指向了内存存储的数据,故形象地称之为指针。对于...
2021-09-13 12:01:44 107
原创 mysql20210906
0.内容概要: a.连接查询的概念,分类 b.连接查询原理,笛卡尔积(两张表) c.两表内连接查询语法,等值连接,非等值连接,自连接1.连接查询概念和分类:连接查询,或说跨表查询,区别于前面的单表查询,是指多张表联合起来查询数据。按照语法年代分,分为SQL1992和SQL1999;而按照连接对象分,分为内连接查询,外连接查询和全连接查询(略去不讲)。内连接查询和外连接查询的概念......2.连接查询原理和笛卡尔积现象笛卡尔现象发生于无条...
2021-09-07 09:20:11 715
原创 MySQL速学-2021-09-01
0.摘要a.排序b.排序+筛选c.单行处理函数(数据处理函数)1.排序,排序与筛选order by fieldName asc; 按照fieldName字段的升序进行排列。字符串的排序和C,Java类似。 order by fieldName desc; 按照fieldName字段的降序进行排列 order by fieldName; 按照fieldName字段的升序进行排列(默认为升序) order by field1 asc, field2 asc...
2021-09-02 11:02:56 165
原创 MySQL速学笔记-2021-08-31
0.摘要:a.简要记录了数据库(DB),数据库管理系统(DBMS)和SQL的基本概念和相互关系 b.简要介绍SQL语句的基本分类,涉及一些日后会学到的新的概念c.简要介绍了数据库(DB)的基本单元——表(table)d.介绍了一些初步的SQL语句和数据库相关操作1.DB,DBMS,SQL的基本概念数据库(DB):按 一定格式 存放数据 的 文件 的集合。数据库管理系统(DBMS):用于管理数据库、对数据库中数据进行增删改查等操作的软件。(两个功能是...
2021-08-31 21:12:34 219
原创 扫雷pro版2021-08-19
#1代码//头文件 game.h#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <time.h>struct oneGame {//一次游戏所需要的数据,game()中的任何子函数都是围绕它修改 char* mineField = NULL;//雷区数组,考虑到计算数字和展示,以及节约空间(防止内存泄漏),所以使用char*。为了简化计算,所以实际行列数目要+2
2021-08-19 18:53:22 85
原创 鹏哥C语言——扫雷2021-08-16
//头文件 supportingGame.h#include <stdio.h>#include <malloc.h>#include <time.h>#include <stdlib.h>//一场游戏。需要:1.雷区(int[][]);2.地雷数目(int);3.死亡与否(int)struct oneGame {//一个问题就是这个二维数组其实是不定的,在创建结构体时又不能进行动态内存分配。 char* mineField = NULL;//.
2021-08-16 21:04:33 950
原创 2021-08-14三子棋
目录#1 代码#2 修复的几个bug#3积累的经验#1 代码主函数main.cpp#include <stdio.h>#include "supportGaming.h"int main() { /*chessBoard oneBoard; piece onePiece; onePiece.player = 1; onePiece.x = 1; onePiece.y = 1; play(&oneBoard, &onePiece); pri
2021-08-14 09:20:44 126
原创 2021-08-13和鹏哥学C语言-数组
#1 创建一维数组和一维数组初始化创建数组时必需指定数组的大小,否则就要进行初始化,编译器会根据初始化的内容决定数组的大小。//创建数组,不经初始化type arr_name[const_n];/*type:数组元素的数据类型,可以是基本数据类型也可以是结构体类型。arr_name:数组名const_n:常值表达式,不能是变量C语言有自己动态内存分配的方式,在数组的大小处使用变量以求达到动态内存分配的效果是不被允许的。*///一个问题:这种创建数组的方式有没有在内存中为数组分配空间
2021-08-13 11:12:23 863
原创 2021-08-12函数递归_和鹏哥学习C语言
#1函数递归函数递归指的是函数自己调用自己的技术。函数递归在思考方式上显得十分优雅,体现了将较大规模的问题转化为较低规模的同类问题的思想;但是从算法效率上讲,递归是一种效率较低的算法。递归算法必需符合两个条件:1.有一个出口(一个最低规模的问题的解决方法);2.将较大规模的问题转化为较低规模的同类问题的方法。使用sequence的表述是:1.知道初始的几项(a0,a1,a2等);2.知道递推公式(an+1=f(an))。 这保证了递归不会无限地进行,也体现出了使用递归算法的函数结构,体...
2021-08-13 07:06:12 156
原创 C语言鹏哥20210812C语言函数
#1 函数C语言函数又译为子程序,是一个实现程序中特定功能的代码块,具有相当的独立性。其具体执行过程和实现细节得到了隐藏。与程序的接口为“返回值”和“参数传递”。函数的使用降低了程序中代码的重复率,提高了程序的简洁性。(复用函数,而不是代码块)函数的使用提高了程序的安全性和debug效率。(函数体现了对整体功能的拆分,使我们能够分别对函数加以检查和纠错,从而保证程序整体的安全)函数的使用提高了程序的健壮性。(可以通过添加新的函数扩充程序的功能,可以通过修改函数改变程序的功能)函数的使用可
2021-08-12 10:50:19 283
原创 鹏哥C语言20210811程序结构作业
程序结构的课程已经告一段落,在这里写几道作业加以巩固。Assignment1:找到指定范围[inf,supper]内含有9的整数。比如91就是十位含有9的整数,901就是百位还有9的整数。我自己的思路有两种:一种是遍历法,另一种是生成法。遍历法就是从inf到supper一个一个试过去,找到符合条件(含有9)的数;而生成法是找到符合条件的数的生成规律(往往是通项公式),在指定范围内加以生成。最后采用的是遍历法。#include <stdio.h>#include <m
2021-08-11 12:13:45 673
原创 20210807#1 C语言程序结构
一.C语言程序结构C语言的三类程序结构:顺序结构,选择结构(分支结构),循环结构。几个重要程序结构相关的概念:表达式,语句,代码块。简而言之,C语言中使用分号(;)隔开的就是一条语句,而C语言中大括号间的语句就是代码块。而表达式的概念较为复杂:其从组成上来看,为操作符和操作数;其从作用上来看,是为了产生side effect(副作用)和求值(每一个表达式必有值,void也是值的一种类型)。详见https://blog.csdn.net/astrotycoon/article/detail
2021-08-07 18:10:36 148
原创 鹏哥C语言第七节课总结
一.结构体结构体是C语言用于处理复杂对象的。结构体本质上是一种自定义类型。#include <stdio.h>#include <string.h>enum Sex { MALE, FEMALE};struct Student { char name[10];//成员 int age; Sex sex;};//定义结构体的语法,作用是提供了具有特定成员的新的数据类型int main() { //定义和初始化结构体变量的方法 Student T
2021-08-07 10:17:23 185
原创 鹏哥C语言第六节课
一.原码,反码,补码整型数在C语言以二进制码形式存储。无符号整型的二进制码无符号位,只有数值位;有符号整型的二进制码的最高位为符号位,之后的为数值位。0代表整数,1代表负数。正整型数以原码形式存储,而负整型数以补码形式存储。由有符号整型数的字面值到原码:符号为+,符号位为0; 符号为-,符号位为1。正整型数的原码反码和补码相同。而负整型数的原码除了符号位之外,按位取反,得到反码;反码加1,得到补码。负整型数在内存中以补码形式存储,这是为了方便加法(减法)...
2021-08-06 14:24:30 810
原创 鹏哥C语言第四课(3)
一.操作符双目操作符 作用 +,-,*,/,% 加减乘除取余 = 赋值 +=,-=,*=,/=,%= 复合赋值 <<,>> 左移1位,右移1位 &,|,^ 按位与,按位或,按位异或 ==,<,>,<=,>=,!= 关系运算符 单目操作符 作用 ++ 自增 -- 自减 ! 逻辑取反 sizeof() 计算变量(包括数组)/类型所占内
2021-08-06 10:25:04 194
实现了北邮2022春季学期互联网协议课程的大作业,内容是编写POP3协议的客户端代码。
2022-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人