- 博客(17)
- 资源 (7)
- 收藏
- 关注
原创 Rotate Array
Rotate Array题目Rotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].Note:Try to come up as many solutions as
2015-03-15 11:09:48 438
原创 Reverse Bits
题目Reverse bits of a given 32 bits unsigned integer.For example, given input 43261596 return 964176192 (represented in binary as 00111001011110000010100101000000).Follow up:If this function is called
2015-03-15 00:40:15 442
原创 Number of 1Bits
Number of 1Bits题目Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).For example, the 32-bit integer ’11' has binary representat
2015-03-15 00:18:12 560
原创 加密基础
加密基础加密在日常生活中使用非常广泛,可以用于保护我们的数据以及网络通信,本篇文章主要分为以下几个部分:对称加密和非对称加密块加密和流加密加密填充加密模式对称加密和非对称加密对称加密:密钥只有一个,使用该密钥对数据进行加密和解密,并且需要保密。常见的对称加密算法包括DES,3DES,AES等。 非对称加密:使用密钥对,包含公钥及私钥对数据进行加密和解密,公钥可以公开,私钥必须保密。用私钥
2015-02-14 00:01:14 907
原创 UNIX Network Programming笔记之第十一章(二)
getaddrinfo函数 gethostbyname和getservbyname是j
2014-04-09 21:04:11 802
原创 UNIX Network Programming笔记之第十一章(一)
第九、十章讲述SCTP协议及套接字编程, 第一次阅读暂时跳过。 第十一章讲述名字与地址转换 DNS DNS,即域名系统,主要用于主机名字与IP地址之间的转换。DNS中的条目称为RR,资源记录resource record,一共有以下若干种: 1. A A记录把一个主机名映射为一个32位的IPv4地址 2. AAAA AAAA记录把一个主机
2014-03-31 23:18:37 873
原创 UNIX Network Programming笔记之第八章
本章主要讲述UDP套接字编程, TCP套接字不一样的在于:UDP是无连接不可靠的数据报协议, 而TCP是有连接可靠的字节流协议. UDP客户端和服务器之间 可以不建立连接进行数据传输, client只使用sendto函数给服务器发送数据, 其中必须指定服务器的地址, 类似的,服务器使用recvfrom函数接收数据. recvfrom和sendto函数#include ss
2014-03-30 17:48:04 749
原创 UNIX Network Programming笔记之第七章
1. 获取、设置套接字选项#include int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
2014-03-27 22:23:58 692
原创 UNIX Network Programming笔记之第六章下篇
select函数在client和server上的应用。void str_cli(FILE *fp, int sockfd) //client中的应用,不过有些不正确{ int maxfdp1; fd_set rset; char sendline[MAXLINE], recvline[MAXLINE]; maxfdp1 = sockfd + 1;
2014-03-24 23:45:52 830
原创 UNIX Network Programming笔记之第六章上篇
1. I/O复用 一种预先告知内核的能力, 一旦内核发现进程的一个或多个I/O条件就绪(输入已准备好被读取,或已能承载更多的输出),就告知进程。2. I/O模型 5种I/O模型: 阻塞式I/O,非阻塞式I/O,I/O复用,信号驱动式I/O,异步式I/O 阻塞式I/O:默认情形下,所有套接字都是阻塞的。前几章的都是阻塞式I/O 非阻塞I/O:当所请求I/O
2014-03-23 23:25:31 860
原创 UNIX Network Programming笔记之第五章下篇
第五章下篇主要讲述信号处理,其他异常情况,以及传输的数据格式。 1. 信号处理 本篇还会继续使用上篇说到的例子,上篇说到子进程结束会给父进程发送信号SIGCHLD,如果父进程不处理将会导致子进程僵死,可能会耗尽系统的进程资源。使用sigaction函数和struct sigaction结构封装signal函数,书中并没有详细说明sigaction结构及函数,下面代码会给出详细结
2014-03-21 23:53:52 854
原创 UNIX Network Programming笔记之第五章上篇
第五章的学习笔记分为上下两篇, 上篇通过分析书中一个简单的例子, 了解客户端和服务器正常启动的情形. 该章根据代码会深入探讨一些问题, 如:client和server在启动时发生了什么? client正常终止发生了什么?若server崩溃, client会发生什么等等, 通过理解这些问题能够帮助我们写出更加健壮的client和server代码. 以下是一个回射的client
2014-03-20 00:49:11 889
原创 UNIX Network Programming笔记之第四章
本章主要讲述socket相关函数, fork和exec函数, getsockname和getpeername函数, 以及使用fork构建简单的并发服务器. socket函数, 创建一个套接字描述符int socket(int family, int type, int protocol);成功返回socket套接字描述符, 失败返回family参数可以使用以下几种:A
2014-03-18 22:25:39 732
原创 UNIX Network Programming笔记之第三章
本章主要介绍socket相关基础知识, 包括套接字地址结构, 字节序, ip地址转换. 1. 套接字地址结构 IPv4套接字地址结构, 主要使用sin_family, sin_port, sin_addr这3个字段 #include struct in_addr{ in_addr_t s_addr; }; struct sockaddr_in{ uin
2014-03-18 19:52:49 875
原创 UNIX Network Programming笔记之第二章
本章主要讲述传输层协议, 包括TCP(传输控制协议), UDP(用户数据报协议), SCTP(流控制传输协议), 这三个协议特点, 建立连接, 关闭连接, TCP状态等.TCP协议具有连接, 可靠, 复杂的特点, 它提供连接, 可靠传输, 分片, 排序, 流量控制以及全双工数据传输. 而UDP是无连接, 不可靠的协议, SCTP具有TCP相似的特性, 可靠,流量控制, 全双工数据传输, 不过和
2014-03-16 11:09:14 946
原创 UNIX Network Programming笔记之第一章
要编写网络通信程序,首先了解通信用到的协议. 描述一个网络各个协议层的常用方法是OSI模型, 七层模型. 由顶向下依次是应用层,表示层,会话层,传输层,网络层,数据链路层,和物理层.其中最上三层合并为应用层, 并且顶上三层构造的是用户进程, 而底下四层通常由操作系统内核提供. 顶上三层处理具体网络应用的细节,却对通信细节了解较少,而底下四层处理的是所有通信细节. 套接字编程接口就是从顶上
2014-03-15 20:45:55 839
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人