前情参见 http://zhidao.baidu.com/questi…
背景:
3 年了的电脑,技嘉 P43-ES3G,CPU E5300,两条 2G 内存,一块 64G SSD 和一块 2T 的希捷,讯景 GT240,Win7 旗舰版
现象:
1. 偶尔正常使用过程中,突然死机,画面冻结在最后一帧,鼠标键盘动不了,如果刚好有放音乐,会卡在最后一个音反复播,很刺耳
2. 有时无…… 阅读全文
Author Archives: ZRJ
360 极速浏览器新标签页面不使用内置缩略图
由于数据丢了,所以文章再贴一次。
google chrome 确实很好很强大,但是,我从小用惯了浏览器的鼠标手势和拖拽功能,而 chrome 原生不提供,我几乎试遍了 chrome store 里面所有的鼠标手势插件,他们确实功能很全,但是,可惜插件都是 JS 的,用起来的感觉,相比于原生内置的实现,在顺滑程度上始终有差异。
于是,为了这…… 阅读全文
pcap 文件格式
pcap 是 packet capture 的缩写,一般是 tcpdump 或者 wireshark 抓包后存盘的文件。
一般情况下,我们可以使用 wireshark 来直观的查看 pcap 的内容,并且借助 wireshark 强大的过滤器,从浩如烟海的数据包中过滤出我们需要的数据包,进行网络流量分析。
而如果需要自己写代码来读取 pcap 文件,就需要明确 pcap 的文件…… 阅读全文
使用代码块来缩小变量作用域
今天突发奇想,想到这么一个写法
#include <stdio.h>
int main() {
char c = 'A';
{
int a = 1;
printf("%d\n", a);
printf("%c\n", c);
}
{
int a = 2;
printf("%d\n", a);
printf("%c\n&qu…… 阅读全文
UDP 包的边界
首先明确一个问题,如果定义了一个数据结构,大小是,比方说 32 个字节,然后 UDP 客户端连续向服务端发了两个包。现在假设这两个包都已经到达了服务器,那么服务端调用 recvfrom 来接收数据,并且缓冲区开得远大于 64,例如,开了 1024 个字节,那么,服务端的 recvfrom 函数是会一次收到两个数据包呢,还是只能收到一个…… 阅读全文
linux smartctl
http://bbs.linuxtone.org/threa…
什么是S.M.A.R.T.
SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及
每一块硬盘(包括IDE、SCSI)在运行的时候,都会将自身的若干参数记录下来
这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等
硬盘运行了几千小时后,很多内在的物理参数都会…… 阅读全文
note a disk crash
for some reason the i can not input in chinese, so note the message in english
first, system crash, win 7, and then auto run chkdsk, for a long time
then, i restart the computer into a USB portable system, runing WinPE
i can copy the data from the old disk(500G) to the new disk (2TB), but too slo…… 阅读全文
Linux 多进程监听 socket
首先来看代码
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/wait.h>
int main() {
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd…… 阅读全文
Linux TCP UDP 混合
基本的思路是这样的:在服务器端,有两个机器,一个对外开启 TCP 监听,然后把监听到的请求内容送到后面的另外一台,或者多台轮询机器上,内网之间使用 UDP,然后等待业务逻辑机器处理完成,这个地方可以做成异步的,然后再返回到用户。
即是这样: client server_front server_back
下面来看代码,首先是 server_fro…… 阅读全文
Linux UDP 收发实例
首先我们需要一个 struct.h
#ifndef STRUCT_H
#define STRUCT_H
typedef struct _UDP_MSG {
int add1;
int add2;
int sum;
char str1[128];
char str2[128];
char cat[256];
} UDP_MSG;
#endif /* STRUCT_H */
然后是服务端的
#include <sys/types.h>
#include <…… 阅读全文