inline void CollectChar(char* _comSQL, const char *_pcAccounts, const char *_pcIP)
{
/*
char buff[128];
_comSQL+=strlen(_comSQL);
memset(buff, 0, sizeof(buff));
sprintf(buff, " onrecv_account_logon('%s','%s'); ", _pcAccounts, _pcIP);
strcpy(_comSQL, buff);
*/
char buff[128];
ch ...
一、现场环境证据收集
将一个bug比喻成一次案件。对案件进行分析时,可以从邻居口中得到线索,也可以从现场找到突破口。那么我更喜欢从邻居口中用较少的次数收集到我所需要的信息后,将更多的时间花费在从现场找到蛛丝马迹。找bug时也是如此,假设你的程序打印出人员的排序情况不一致,不应该马上就去查找你的排序代码。更应该从“现场”周围来收集更多情况:比如可以增加若干人员后看看排序情况;查看程序其他地方输出的排序是否正常。。。通过这些可以了解是一些索引越界了还是排序本身代码的问题。接着再去具体查看排序的子代码。
二、凶手范围的确认
这里《代码大全》中总结了几条
先怀疑有前科的人员: ...
if ( (nread = recvfrom( fd, ptr, nleft, 0, (sockaddr*)&m_addrSourceIp,
&sizeSock) ) < 0)
int CSynScan::CheckSyn(const char* _buffPackage)
{
assert( _buffPackage!=NULL);
cout<<"pTcp->tcp_flags:"<<pTcp->tcp_flags<<endl;
cout<<"pTcp->ackno ...
说是详解,实在是有愧。只不过是自己前段时间不理解,花费了点时间来总结下而已。因此此篇文章完全代表自己主观的观点^_^
关于"大小字节序"方面的知识详见BLOG前一篇文章<<大字节序 小字节序>>
那么,先理清下在网络传输里这个字节序转换的过程。假设是一台小字节序的PC机,构造好包后,以大字节(即网络流)方式传输,接着达到终端。我一开始以为传输的时候把高低字节替换,其实不是,只是一个读取值的顺序不同而已。本着这个,来看看IP头格式的定义:
标准的IP头的第一个字节里,是先版本,后首部长度,后来在很多代码里看到这两个是相反的。当时就很纳闷。比如这个定义
#if defin ...
from:
http://www.sf.org.cn/Article/base/200709/20502.html
Endian 的由来
一、引子
在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了
计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、
字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方
将无法进行正确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采
用的字节存储机制主要有两种:
big-edian和little-endian。本文简要描述这两种存储机制的来历、特点和区别。
为了叙述方便,下 ...
在调试一个地址时无意中发现
g++代码,inet_nota情况也一样,后来为了验证就换成如下
char *fun_test(char* c)
{
static char s_buff[10];
char *p_buff=s_buff;
strcpy(p_buff, c);
return s_buff;
}
//main函数
char c1[]="abc",c2[]="def";
cout<<fun_test(c1)<<endl
<<fun_test(c2)<<endl;
retu ...
execl函数功能如下:启动一个可执行文件,并且对他进行传送参数。一些原型如下
#include <unistd.h>
extern char **environ;
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg , ..., char * const
...
- 20:03
- 浏览 (197)
- 评论 (0)
- 分类: Linux/Unix
在《unp》书上,stevent一开始的一个服务器小例子这样介绍到:一个TCP的服务器和客户
端,客户端puts进行阻塞式的输入消息。暴露的问题是,当用户进行阻塞到puts输入时,对方
的服务器关闭,那么用户可能发了一大断消息按下发送时,发现程序崩溃了。。阻塞的出现的
另一种意义就是各司职。 最近在负责的一个项目中,需要频繁的进行TCP吞吐,我一时认为不
需要什么阻塞,都是即时的消息,而且又很频繁。结果暴露的问题出来了:(9060为服务端)
1、如
tcp 0 16385 218.66.25.238:32821 218.66.25.238:9060 ...
time_wait状态的解释和验证:在TCP同步双工断开连接中,假设没有time-wait这个状态,那么在最后一个FIN N发送时,主动关闭方接到后,返回ack N+1.那么这个时候如果N+1这个包在没有正确达到,那么对方会一直处于LAST ACK的状态,而发送方因为没tim_wait这个状态,已经认为是正确发送了就退出了,造成接收方一直等待。 加入time_wait后,time_wait本身这个值也代表这个一个包在网络上能生存的时间,接收方就可以简单认为在这个时间内没收到N+1的包就可以认为
这次断开是失败的,那么要重新发送FIN N的序列号。而这个时候time_wait端也要将状态改为 ...
今天加了个87年的程序员群,发现87年后学C++的好少啊。。都是javaer..
做个计划在这里,不然每天看似忙碌,其实都是瞎忙
5月份:利用业务时间把代码大全兴趣的地方先过一遍
6月份:把linux shell编程指南过一遍
- 浏览: 12659 次
- 性别:

- 来自: 福建福州

- 详细资料
搜索本博客
我的相册
未命名
共 1 张
共 1 张
最近加入圈子
最新评论
-
把sprintf进行改造,提升 ...
这哪像java代码?
-- by Rainge -
资料存放 linux命令收集和 ...
-- by java-main -
详解大小字节序和构造raw ...
u_int16_t ip_off; 如果是分成8位的话就这样设置u_int8_t ...
-- by lin_style -
返回静态地址 g++和VC的一 ...
又证实了一下,和平台无关,和调用的<<的重载关联,
-- by lin_style -
阻塞和非阻塞的一点使用心 ...
再教大家一个方法当你跟对方对接时,你可以不接收。当你缓冲区满时,对方就会阻塞,如 ...
-- by lin_style






评论排行榜