瞎谈 Socket 编程(二)

数据传输方式

  SOCK_STREAM    面向连接        准确性/相对较慢   TCP
  SOCK_DGRAM     无连接的传输方式     视频/音频       UDP
Server
 1. 创建套接字                 int sock = socket(AF_INET, SOCK_STREAM, 0);
 2. 将套接字和IP、端口绑定           bind(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
 3. 进入监听状态,等待客户端请求        listen(…);
                        accept(…);
 4. 接受客户端数据/向客户端发送数据       read(…)/write(…);              
 5. 关闭套接字                 close();

Client
 1. 创建套接字
 2. 向服务器(特定的IP和端口)发送请求       connect(…);
 3. 读取服务器传回的数据/向服务器发送数据    read/write(sock, char*, sizeof(…));
 4. 关闭套接字

密码学:DES、3DES、AES

  加密方法可以分为两大类:一类是对称密码体制,又称单钥或私钥密码体制(private key cryptography);还有一类是非对称密码体制,也称双钥或公开密钥体制(public key cryptography)。前者的加密和解密过程都用同一套密码,后者的加密和解密过程用的是两套密码。
  在单钥加密的情况下,密钥只有一把,所以密钥的保存变得很重要,一旦秘钥泄露,密文也就被破解了;在双钥加密的情况下,秘钥有两把,一把是公开的公钥,还有一把是不公开的私钥,公钥与私钥是一一对应的关系,有一把公钥就必然有一把与之对应的、独一无二的私钥,反之亦成立。此外,①同时生成公钥和私钥应该是相对比较容易的:所有的公钥、私钥对都不同,用公钥可以解开私钥加密的信息,反之用私钥也可以解开公钥加密的信息;但是②从公钥推算出私钥,应该是很困难或者是不可能的。
  目前,通用的单钥加密算法有 DES(Data Encryption Standard),通用的双钥加密算法为 RSA(Rivest-Shamir-Adleman),本文主要介绍三种常用的单钥加密算法:DES、3DES(Triple DES) 以及 AES(Advanced Encryption Standard)。

Win/Linux下操作ini配置文件(API)

 我们的程序常常需要从配置文件中获取参数,一方面,用户关于程序的自定义配置往往就存储在配置文件中,自定义配置的适配与保存就转化为对配置文件的读写操作;另一方面,也是本文编写的由来,那就是将有关程序中核心算法的参数提取到配置文件,方便算法参数的调试(只要调整配置文件,无需修改程序源码,更无需重新构建)。
 .ini 文件作为典型的配置文件,其文件存储的内容基本上是一些参数的 Key-Value 形式,此外就是一些所谓的属性段,多个对同一方面参数进行描述的 键值对 可以归纳为一个 Section
 下面,是 Win/Linux 下如何通过不同的 API 实现对 *.ini 配置文件读写操作的整理。

声明/定义/初始化/赋值

1
2
3
4
5
6
7
8
9
10
// 定义(定义性声明)
int i;
// 声明(引用性声明)
extern int j;
// 初始化
int k = 7;
// 默认初始化
int l;
// 赋值
l = 100;
  • 引用性声明不分配存储空间,如:extern int x;只是告诉编译器变量x是整型,已经在其它地方定义了。
  • 定义是在内存中确定变量的位置、大小。
  • 初始化是定义变量的时候赋给变量的值,强调从无到有这一过程。
  • 赋值是初始化后用到该变量,赋给该变量新的值。

JSP考勤系统(一) 站点框架介绍与入门

  本文只是本人对当前完成进度的一个总结,如有缺漏或误点,非常欢迎您通过下方评论指出。感谢开路人ansen,提供了很多参考信息。开发环境是MyEclipse8.0(Win8.1下)。点击获取安装包(内有MyEclipse8.0安装包及如何破解提示;同时有mysql-5.5.19-32位安装程序),访问密码a690
  基于当前的考勤系统网站点的实现,跟大家介绍一下(1)大概的MVC设计模式,以及可以如何遵照这种模式搭建自己的考勤系统网站;此外,会介绍一下(2)站点下如何指定路径引用资源(包括最主要的jsp文件以及少部分的image和css文件);通过(3)几种跳转方式的实现引入Get/Post请求方式的介绍;最后,通过(4)分析web.xml配置文件来介绍有关通过url来制定Servlet控制器进行处理的匹配问题。

JSP考勤系统(二) JDBC连接MySQL数据库

  在前面的MFC程序那一块,我们已经介绍了基于ODBC和ADO技术如何操作MySQL数据库,这一部分我们介绍另外一种更加方便快捷的,能够实现相同功能的方式,那就是通过JDBC访问数据库。相比之下,这种方式要比之前的ADO方便得多,较之前面难度也有所下降。

ODBC vs JDBC

  这两种方式都是访问数据库的常用的编程接口,ODBC(Open Database Connection)是”微””软”的东西,只能在其操作系统上跑,移植性可想而知;JDBC(Java Database Connection)则是Oracle的东西,是Java大家庭的一员。大家都知道,Java正式可移植性的典范,所以,JDBC的可移植性是显然的。至于为什么,通过下面的实现流程,你应该会有所体会。此外,可以通过比较ADO的实现来窥见其便捷性。