自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ChenYitian

我们还有很多梦没做,还有很多明天要走,要让世界听见我们的歌------信乐团《天高地厚》

  • 博客(91)
  • 收藏
  • 关注

原创 利用filter过滤器实现整个服务器对中文的支持

过滤器filter和servlet服务器小程序一样,也是运行在服务器端的java类filter负责对所有的请求在到达服务器处理程序之前,先执行一些操作,达到对数据的预处理的目的。 比如我们可以编写一个过滤器:@WebFilter(filterName = "FilterOne")public class FilterOne implements Filter { public void

2017-05-20 12:15:11 440

原创 利用servlet实现用户的登录

当时在上JAVA课的时候,老师就给我们讲过SUN公司的servlet是一个典型的JAVA语言的应用。现在在上网络编程课的时候,终于接触到了这种服务器小程序。 现在我们就用servlet来简单实现一个用户登录的小程序。 首先,servlet也是一个JAVA类,新建一个JAVA类,它直接继承了HttpServlet类:@WebServlet(name = "ServletTest")public

2017-05-20 11:19:30 2281

原创 利用JSPsession对象保持住登录状态

http协议本身是一种无状态的协议,也就是客户端连续发送的多个请求之间没有联系,下一次请求不关心上一次请求的状态。 而实际运用中却希望服务器能记住客户端请求的状态,比如在网上购物系统中,服务器端应该能够识别并跟踪每个登录到系统中的用户挑选并购买商品的整个流程 。为此,web服务器必须采用一种机制来唯一地标识一个用户,同时记录该用户的状态,这就要用到会话跟踪技术。 Java Web使用Sessio

2017-05-13 10:26:56 7608 2

原创 JDBC连接数据库

首先在mysql workbench中新建connection,默认端口号是3306,,新建数据库名称是jsp_db,创建好测试用的表。 这里建了两个表,一个address,另一个student 向student表中插入两条数据:insert into student(studentID,age,gender)values(1,10,"男"),(2,20,"女");然后去mysql.

2017-05-10 21:06:22 405

原创 JSP中的注释

JSP中的注释大概分为三种1.HTML注释组成会被发送到浏览器端,浏览器端通过查看源代码可以看见注释中的内容。甚至HTML注释中依然可以引入JSP代码。 2.JSP注释组成不会被发送到浏览器,浏览器端无法查看到源代码 3.JAVA注释JSP程序段中JAVA中的//、/**/等注释方式依然有效 比如:            --> 

2017-05-06 11:51:06 2842

转载 intellij中tomcat的环境配置

原网址:http://blog.csdn.net/maomengmeng/article/details/52043928/以前都用MyEclipse写程序的 突然用了IDEA各种不习惯的说 借鉴了很多网上好的配置办法,感谢各位大神~前期准备 IDEA、JDK、Tomcat请先在自己电脑上装好 好么~ 博客图片为主 请多看红框框开始1.创建、

2017-05-06 09:42:24 1110

原创 LeetCode-Algorithm2 C++的链表

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return i

2017-04-09 21:42:40 510

原创 Android高德地图定位、点标记、POI

高德地图API5.0版本以后定位蓝点的显示不依赖于定位API。package com.example.dell.a3dmap;import android.Manifest;import android.content.Context;import android.content.pm.PackageManager;import android.location.Geocoder;

2017-04-06 22:25:55 8851 4

原创 CSS中id和class的引用

今天在学习过程中,遇到了class和id在css文件中的引用问题,被搞得很晕如果想要指定在一个id里面的某一种元素,在CSS中应该用空格隔开,而不是像其他编程语言一样用“.”隔开,比如 fuck 姓名 年龄 学号

2017-04-03 22:27:43 10100

原创 HTML5中div布局的float属性

今天在看div布局的时候讲到了利用float属性来实现元素的浮动,一开始搞得不是很明白,现总结如下:无论如何,div是一种块元素,每个元素铁定会占一行,无论当前行是否已经用完了,也就是所谓的“流”的概念例如: 1号块 2号块 3号块 4号块样式:div#container{ background-color: grey; wid

2017-04-03 14:49:44 23976

原创 利用select异步I/O模型实现群聊

之前所有写的socket程序都是“同步阻塞”的,这里的“同步”是指,应用中的函数调用与相应的操作系统内核中的函数是同步的,“阻塞”指的是当accept,recv,send等函数还没有确认/接收/发送时,相应的线程处于等待状态,无法继续往下执行。“同步阻塞”虽然易于理解与实现,但是是一种效率很低的模式,因为当阻塞的时候,这个线程是不能干任何事情的,因此,“异步非阻塞”是一种效率更高的方式。利

2017-03-20 23:08:07 1742 1

原创 Android高德地图API基本配置

今天配置了一下高德地图的API,其中遇见了一些困难,总结如下:1. SHA1安全码的获得。我的Android studio使用官网上的教程失败,后来采用这种方法获得的关于keystore的介绍可以看下面这篇文章:http://blog.csdn.net/nimasike/article/details/514572292.在官网上用SHA1码和包名注册你的程序,官网会给

2017-03-14 17:37:15 932

原创 利用原始套接字实现tracert路由追踪

在windows的命令行下,使用tracert 域名/IP地址 可以记录本机到目的主机所经过的路由器的IP地址。这个功能使用原始套接字也可以实现。我们通过不断地向目的主机发送ICMP-ECHORequest包,并且将包的TTL一开始设为1,这样一到达网关路由器后,路由器就检测到这个包超时了(TTL=0了),于是就会丢弃次包,并返回一个ICMP超时报文,在ICMP超时报文中,包含了路由器的IP地

2017-03-14 09:52:31 3366 1

原创 利用原始套接字实现对流经本机IP包的捕获

经过上一篇博客的总结,我知道到了原始套接字接收到的字符串的开始字段是IP数据报的首部,所以我想除了之前利用win_pcap可以捕获数据包以外,理论上来说原始套接字也可以实现对IP数据报的捕获。思路也很简单,捕获到字符串以后转换成指向IP首部结构体的指针,再打印相关信息就可以了。当然由于网卡会默认丢掉不属于本机的数据包,所以需要将套接字设置为接收所有数据。win_pcap是直接对网卡进行设置。i

2017-03-13 20:14:08 1964 2

原创 几种网络编程技术在协议栈中的层次

目前学习了普通TCP/UDP套接字,原始套接字,以及win_pcap编程,他们都有发送字符串以及接收字符串的过程,但每种工具所工作的层次是不一样的,发送和接收的字符串所处协议栈的位置也是不一样的。现总结如下:

2017-03-13 16:12:38 838

原创 win_pcap模拟syn_flood攻击

syn_flood攻击得原理很简单,通过向目的主机发送大量建立TCP连接得请求,但源IP地址是乱填的,所以本机不会收到TCP应答,而其它主机收到TCP应答后由于之前并没有请求过TCP连接,所以会丢弃这个应答,导致被攻击的主机空等一段时间,资源被白白浪费。当然这也是理论上的结果,实际上在现在,这种攻击肯定是行不通的。#include #include #include #include

2017-03-12 21:04:00 3683 3

原创 利用win_pcap实现解析经过本机的IP包

我们电脑上的网卡有一个重要功能就是判断每一个到自己这的数据帧是不是发给自己的,如果不是的话会主动丢弃,从而保证了因特网的一定的安全性。而利用win_pcap将网卡设置为混杂模式可以捕获网卡上的所有经过的数据包。首先利用pcap_findalldevs()函数获取已连接的网络适配器列表。int pcap_findalldevs( pcap_if_t * * alldevsp

2017-03-12 12:18:08 2902

原创 socket实现Ping命令

实现的原理还是很简单的,主要还是要对ICMP协议有所了解。ICMP协议是在IP协议的数据部分实现的,普通的socket只能建立TCP或者UDP连接,实在传输层上做东西,只能控制要传输的数据,不能控制IP包的数据部分(即ICMP包实现的部分),所以我们需要一个原始套接字填充IP协议的数据部分。#define WIN32_LEAN_AND_MEAN#include "stdafx.h"#inc

2017-03-11 23:07:04 10876

转载 VS2013配置Winpcap开发环境

Start本文以Visual Studio 2013和WinPcap 4.1.3作为示例,对32位和64位Win7通用1、下载并安装WinPcap运行库http://www.winpcap.org/install/default.htm一些捕包软件会捆绑安装WinPcap,MentoHust也会附带WinPcap,这种情况下一般可以跳过此步。2、下载WinPcap开发包ht

2017-03-11 15:30:01 2218

原创 关于多线程对程序执行时间的影响

多线程真的能加速程序的执行吗?假设有以下一个任务:读取一个文件,从文件中搜索指定的单词,统计个数。用以下两种方式完成:1.开两个线程,一个线程负责读取文件,读取一个单词后扔给另一个线程,另一个线程负责检查这个单词是否匹配指定的单词。2.只用一个线程,边读文件,读完一个单词以后,匹配这个单词,匹配出结果以后再读下一个单词。两段程序的代码如下:多线程程序:(文本文件用的是我在申请的

2017-03-10 22:16:10 6501 2

原创 linux下shell递归遍历文件夹的实现

实现思路就是深度优先搜索的实现思路,不过第一次在Linux下写脚本,还需要适应。比如if语句的中括号两边一定要留空格之类的。function dfs{ local now_dir now_file now_dir=$1 for now_file in $(ls ${now_dir}) do if [ -f $now_file ] then echo $now_file

2017-03-06 21:07:55 1964

原创 windows网络编程socket选项与广播的实现

调用getsockopt和setsocketopt可以查看和设置socket中的一些选项,比如socket是否处于监听状态,是否允许广播,是否允许路由选择等等。1.getsockopt()int getsockopt(SOCKET s,int level,int optname, char* optval, int* optlen)s:要查看的套接字level:选项的级别,有SOL

2017-03-06 17:13:56 2885

原创 windows网络编程 gethostbyname()

1.gethostbynamegethostbyname()可以根据主机的域名得到相关的信息,它返回一个指向hostent类型的指针。gostent结构体定义如下:struct hostent    {        char    *h_name;                       char    **h_aliases;        int     h_addrty

2017-03-06 15:57:34 3241

原创 bat批处理编程实例(1)

1.修改文件名比如将当前文件夹下所有文件的后缀都改为.rar@echo offfor %%f in (*) do (if "%%f" neq "test.bat" (ren %%f %%f.rar))其中ren时改名函数,ren string1 string2 将文件名为string1的文件改名为string22.批量产生文件比如产生0sb.txt-99sb

2017-03-04 17:06:58 1796

原创 bat批处理编程基本语法2

1.if else语句(1)if exist a.txt (type a.txt) else (echo 不存在a.txt文件)(2)set a=sb1    set b=sb2    if %a%==%b% (type a.txt) else (echo 不存在a.txt)    结果:Hello World!(a.txt的内容)(3) if [/i](强制忽略大小写)

2017-03-04 11:26:30 537

原创 bat批处理编程基本语法(1)

在Windows下,可以用cmd命令行进行一些操作,而有一种.bat格式的文件,将这些命令给过程化,这就是bat批处理编程。比如我们在记事本中写下如下两行:然后在命令行中运行如下命令:可以看到它自动地Ping了百度和小米的网站,而不用我去输两次Ping命令,这就是批处理程序。批处理的基本语法1.echo作用类似于C语言的printf,可以在控制台中进行打印。

2017-03-03 22:58:36 5295

原创 UDP全双工通信的实现

要解决全双工通信需要开两个线程,一个发送线程,要监听键盘的输入,另一个是接收线程,要监听接收队列。c++的多线程编程问题在此不在这里叙述了,以后可能会单独写一篇总结一下。由于是全双工,所以

2017-02-26 10:50:46 9886

原创 socket实现UDP通信

UDP与TCP不同,是一种无连接的通信方式,相比TCP而言更加灵活。利用socket实现UDP的方式相比TCP而言也更加简单。发送方:1.初始化套接字2.创建socket3.利用sendto发送数据(TCP是send)4.关闭socket接收方:1.初始化套接字2.创建socket并与本机进行绑定3.利用recvfrom接收数据4.关闭socket

2017-02-23 10:40:46 4221

原创 socket实现TCP通信

TCP是一种可靠的,面向连接的协议。在socket中,建立TCP连接的过程大致如下:服务器端:1.初始化套接字2.创建服务器socket3.将本机地址与服务器socket绑定在一起4.服务器开始监听5.服务器确认请求(确认之前时一种阻塞的状态),accept()函数生成一个新的套接字。6.接收客户端发来的字符串客户端:1.初始化套接字

2017-02-22 22:12:25 2744 1

原创 socket中三种地址结构体的关系

struct sockaddr {  unsigned short sa_family; /* address family, AF_xxx */  char sa_data[14]; /* 14 bytes of protocol address */  };说明:sa_family:是2字节的地址家族,一般都是“AF_xxx”的形式,它的值包括三种:AF_INET,AF_INE

2017-02-22 17:17:03 2482

原创 socket的初始化与IP地址的转换

socket是介于传输层和应用层之间的一个API,它比一般的网络前端更靠近底层,它可以直接基于TCP/UDP协议甚至网络层的IP协议进行编程。WSAStartup()用于初始化windowssockets,返回WSADATA结构体,只有调用了WSAStartup()以后,才能继续调用windowssockets的其它API。需要包含头文件:#include "stdafx.h"#in

2017-02-22 17:04:54 5533

原创 CCF模拟试题-最大的矩形

问题描述在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。输入格式第一行包含一个整

2016-09-04 21:33:56 2042

原创 CCF模拟试题I’m stuck!

问题描述给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|','.', 'S', 'T'七个字符中的一个,分别表示如下意思:'#': 任何时候玩家都不能移动到此方格;'+': 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格;'-': 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非'#

2016-09-04 21:26:15 1086

原创 JAVA多线程打印ABC

多线程中一个很有名的例题就是多线程打印ABC,要求用三个线程,分别是打印A,打印B,打印C,轮流唤醒和锁死,最终打印出10组ABC。/** * Created by 123 on 2016/8/30. */public class PrintABC { public static void main(String[] args) { ABC p = new A

2016-08-31 21:53:28 586

原创 JAVA多线程(2)

在上一篇博客中,提到了一个火车售票的问题,但其实还有一个问题没有考虑到。比如一个售票点正在售票,并且此时只剩最后一张票了,但还没有对库存的票进行减一,这个时候另一个售票点又来了一个人要买票,售票员一查还有一张票,于是又卖了出去。这样最后一张票就被卖了两次。 实际情况中当然要避免这样的情况,于是就要想一个办法让那么多个线程访问同一个资源时一次只能有一个线程占有这个资源,当一个线程占有该资源时

2016-08-31 21:49:24 238

原创 JAVA多线程(1)

音乐播放器就是一个进程,QQ也是一个进程,一个进程当中可以有多个线程。一个CPU同一时间只能做一件事,但是在很小的时间间隔内交替就可以给人同时执行多个程序的感觉设置一个进程的开销较大,并且进程之间不允许互相访问内存,通信较为困难,所以,创建进程的开销就要小得多。实现多线程得方法有两种,一个是继承 Thread类,一个是实现Runnable接口。不管是哪个,都需要重写run方法。

2016-08-30 22:42:22 238

原创 Android UI控件 拖动条SeekBar

之前所讲的ProgressBar是不可拖动的,是软件自动进行的。而像音乐播放器这种拖动条用户是可以通过拖动来进行操作的,这就需要用到SeekBar。 下面的程序使用SeekBar简单实现了一个播放器的播放条,没有进行拖动时会自动前进,用户进行拖动后在拖动后的地方开始继续。public class MainActivity extends AppCompatActivity { //定义的拖动

2016-08-14 19:11:29 754

原创 Android UI ProgressBar与Timer计时器

ProgessBar也就是常见的进度条,为了演示方便,将它和Timer计时器一起学习。public class MainActivity extends AppCompatActivity { private int progress = 0; private ProgressBar pb; private Timer timer; private TimerTask

2016-08-12 11:57:29 2105

原创 Android UI 控件--(multi)AutoCompleteTextView、查看原文件、修改颜色

AutoCompleteTextView是一种能够自动补全的文本框,而multiAutoCompleteTextView是一种能够识别分隔符的自动补全文本框。public class MainActivity extends AppCompatActivity { //申明一个自动补全文本框 private AutoCompleteTextView actv; //为自动补全

2016-08-10 21:53:58 2460

原创 Android内部存储

Android手机里,除了SD卡外部存储以外,还有一部分内部存储,内部存储不是电脑上的内存,它是断电以后依然可以保存数据的,它主要用来装Android操作系统的文件,它们不root是无法看到的。但是内部存储读取速度较快,相当于电脑的系统盘。一下程序实现了在一个叫et的EditView里,按保存按钮保存数据,并在下次启动应用程序时还原出来。public class MainActivity

2016-08-02 23:12:24 347

空空如也

空空如也

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

TA关注的人

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