摘要: 引言:在进行网络通信时是否需要进行字节序转换?相同字节序的平台在进行网络通信时可以不进行字节序转换,但是跨平台进行网络数据通信时必须进行字节序转换。原因如下:网络协议规定接收到得第一个字节是高字节,存放到低地址,所以发送时会首先去低地址取数据的高字节。小端模式的多字节数据在存放时,低地址存放的是低字节,而被发送方网络协议函数发送时会首先去低地址取数据(想要取高字节,真正取得是低字节),接收方网络协议函数接收时会将接收到的第一个字节存放到低地址(想要接收高字节,真正接收的是低字节),所以最后双方都正确的收发了数据。而相同平台进行通信时,如果双方都进行转换最后虽然能够正确收发数据,但是所做的转换是 阅读全文
posted @ 2011-10-18 22:06 Charliee 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 管道函数#inlcude <unistd.h>int pipe(int fd[2])上图来自unix网络编程卷二,描述了父子进程通过两个管道进行数据通信。一个简单父子进程通信的例程:pipe.h:#include <unistd.h>#include <stdlib.h>#include <stdio.h>void server(int rd,int wr){ char buff[100]; ssize_t n; if((n = read(rd,buff,100)) == 0){ printf("no chars\n"); r 阅读全文
posted @ 2011-10-18 21:56 Charliee 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/tactoth/archive/2009/09/27/1574772.html不懂最近口干,不喜多言,代码说话:Call_cdecl_stdcallintr=func(3,4);00411AEE push 400411AF0 push 300411AF2 call func (4111E5h)00411AF7 add esp,800411AFA mov dword ptr [r],eaxintr=func(3,4);00411AEE push 400411AF0 push 300411AF2 call func (4111EAh)00411 阅读全文
posted @ 2011-10-18 20:48 Charliee 阅读(294) 评论(0) 推荐(0) 编辑