通讯协议中数据类型有定义为整型的,好像是说定义整型更节约空间,但是在数据
包里都是以字符串存在的,才可能传输吧,那怎么体现出节约空间?
如一个包:"thisistest1234"在socket传输中肯定是作为一个字符串来传输,如果我把
"1234"这个字段作为整型,能体现节约空间吗?
包里都是以字符串存在的,才可能传输吧,那怎么体现出节约空间?
如一个包:"thisistest1234"在socket传输中肯定是作为一个字符串来传输,如果我把
"1234"这个字段作为整型,能体现节约空间吗?
解决方案 »
- 关于属性页与属性表
- 树形视图控件和对话框切换的问题
- 大家现在做界面都用什么?是MFC吗?
- scrollview中使用bitblit的问题
- 老问题:CString转换为char*能不能用这种方式
- 这个问题问了好多次,非常之急,请大家进来帮帮忙!!!!!!!
- 求教,关于CBitmap::CreateBitmap的问题。
- [求助]这样的错误类型从哪里找原因啊? 很着急,请您指导!
- @在DLL中使用非模式对话框,Create ShowWindow之后为什么还会有“该内存不read之类”的错误!
- SetBitmap为什么没有效果??
- VC++最基础的一个问题
- 关于 Limiting a Single Instance(程序启动一次)的问题
"thisistest"+int(1234) = 14BYTE
"thisistest"+(short int)(1234) = 12BYTE如果是:
"thisistest123467" = > 16BYTE
"thisistest" + (unsigned int)(123467) = 14BYTE一个手的手指头数不过来了。。
"thisistest123467" = > 16BYTE
"thisistest" + (unsigned int)(123467) = 14BYTE
----------------------------------------------
上面我是理解,在程序中整型占位肯定会少,比如:
CString s="123456"
int i=123456,肯定是i占的空间少,现在我不明白的是,我的SOCKET发送函数:
SendMessage(char* SendBuffer),参数是字符型的,那我不是又得把int转成字符型再发吗?
那不是发送的buffer又变成字符串存储了吗?何以能节约空间呢?
就是这个发送函数,让我老是转不过弯来
int i=123456,这样看你怎么分配缓冲区
比如 int i=123456;
char sz_i[4]={0};
memcpy(sz_i,&i,sizeof(int));
SendMessage(sz_i,4) CString s="123456"
SendMessage(s.getbuffer(),s.getlength());你看看那个节省空间?
只是告诉编译器把这个int * 解释成 char *;