wsock32.dll接收的包,将接收包按text形式输出,前面是行,中间按16进制输出,后面按包的字符形式输出。
现在的问题:按字符形式输出时,包里面的数据好像自带换行的,导致字符形式输出了我不需要的换行。请大大们出招。
另外输出例子看2楼
//将数据格式化写入文件,给下面的函数调用
void PrintData(FILE *pf, BYTE FAR *pdata,int len)
{
int i,i_16;
int size;
char * temp_buf[16]={" "}; i_16=0;
size = len; fprintf(pf,"printdata过程,需要增加识别recv send\n");
if(size>Max_Data_Len) size=Max_Data_Len;
for(i=0;i<size;i++)
{
switch (i_16)
{
case 0:
{
fprintf(pf,"%08xh ",g_position); //写行数
fprintf(pf,"%02x ",pdata[i]);
memcpy(temp_buf,&pdata[i],16);
g_position=g_position+1;
i_16=i_16+1; //放在CASE最后,
break;
}
case 15:
{
fprintf(pf,"%02x ",pdata[i]); //最后一个字节给出4个空格
//将缓冲区按源字符输出,不满1行的另外再考虑
fprintf(pf,"%s",temp_buf);
fprintf(pf,"\n"); //写满16个字节换行
i_16=0; //放在CASE最后,写满16个字节,初始化
break;
}
default :
{
fprintf(pf,"%02x ",pdata[i]);
i_16=i_16+1; //放在CASE最后
break;
}
}//switch结束
}//for语句结束
//if (i_16!=15) fprintf(pf,"%s",temp_buf);
fprintf(pf,"\n");
}
现在的问题:按字符形式输出时,包里面的数据好像自带换行的,导致字符形式输出了我不需要的换行。请大大们出招。
另外输出例子看2楼
//将数据格式化写入文件,给下面的函数调用
void PrintData(FILE *pf, BYTE FAR *pdata,int len)
{
int i,i_16;
int size;
char * temp_buf[16]={" "}; i_16=0;
size = len; fprintf(pf,"printdata过程,需要增加识别recv send\n");
if(size>Max_Data_Len) size=Max_Data_Len;
for(i=0;i<size;i++)
{
switch (i_16)
{
case 0:
{
fprintf(pf,"%08xh ",g_position); //写行数
fprintf(pf,"%02x ",pdata[i]);
memcpy(temp_buf,&pdata[i],16);
g_position=g_position+1;
i_16=i_16+1; //放在CASE最后,
break;
}
case 15:
{
fprintf(pf,"%02x ",pdata[i]); //最后一个字节给出4个空格
//将缓冲区按源字符输出,不满1行的另外再考虑
fprintf(pf,"%s",temp_buf);
fprintf(pf,"\n"); //写满16个字节换行
i_16=0; //放在CASE最后,写满16个字节,初始化
break;
}
default :
{
fprintf(pf,"%02x ",pdata[i]);
i_16=i_16+1; //放在CASE最后
break;
}
}//switch结束
}//for语句结束
//if (i_16!=15) fprintf(pf,"%s",temp_buf);
fprintf(pf,"\n");
}
解决方案 »
- VS2010的小问题..咋老是出错的啊...
- 1>Project : warning PRJ0018 : The following environment variables were not found
- 如何做一个用.torrent文件下载东西的BT下载器?
- VC中 如何使用onTimer()触发一个事件?
- 三个三角了,散分
- 请问怎么做一个监视起重机状态和参数的实时监控软件?
- QQ游戏界面
- 关于VC输出EXE的问题!请教!
- 我用CInternetSession类获得了网页的HTML源文件,但我想把有用的信息还原出来,有处理HTML的类吗?或给出思路,谢谢!
- 怎么实现类似IE地址输入框的递进搜索列表框控件
- 关于内核及进程保护的程序的问题
- 目录问题!
00000000h 21
printdata过程,需要增加识别recv send
00000001h 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a GET / HTTP/1.100000002h 41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 41 63 63 Accept: */*
Acc
00000003h 65 70 74 2d 4c 61 6e 67 75 61 67 65 3a 20 7a 68 ept-Language: zh
00000004h 2d 63 6e 0d 0a 41 63 63 65 70 74 2d 45 6e 63 6f -cn
Accept-Enco
00000005h 64 69 6e 67 3a 20 67 7a 69 70 2c 20 64 65 66 6c ding: gzip, defl
00000006h 61 74 65 0d 0a 55 73 65 72 2d 41 67 65 6e 74 3a ate
User-Agent:
00000007h 20 4d 6f 7a 69 6c 6c 61 2f 34 2e 30 20 28 63 6f Mozilla/4.0 (co
00000008h 6d 70 61 74 69 62 6c 65 3b 20 4d 53 49 45 20 36 mpatible; MSIE 6
00000009h 2e 30 3b 20 57 69 6e 64 6f 77 73 20 4e 54 20 35 .0; Windows NT 5
0000000ah 2e 30 3b 20 54 65 6e 63 65 6e 74 54 72 61 76 65 .0; TencentTrave
0000000bh 6c 65 72 20 3b 20 2e 4e 45 54 20 43 4c 52 20 32 ler ; .NET CLR 2
0000000ch 2e 30 2e 35 30 37 32 37 29 0d 0a 48 6f 73 74 3a .0.50727)
Host:
0000000dh 20 77 77 77 2e 62 61 69 64 75 2e 63 6f 6d 0d 0a www.baidu.com0000000eh 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 4b 65 65 70 Connection: Keep
0000000fh 2d 41 6c 69 76 65 0d 0a 43 6f 6f 6b 69 65 3a 20 -Alive
Cookie:
00000010h 42 41 49 44 55 49 44 3d 44 31 39 38 38 35 41 32 BAIDUID=D19885A2
00000011h 31 42 34 45 43 35 34 44 30 42 42 44 31 46 41 42 1B4EC54D0BBD1FAB
00000012h 41 44 42 34 45 44 30 36 3a 46 47 3d 31 3b 20 42 ADB4ED06:FG=1; B
00000013h 44 53 54 41 54 3d 39 32 33 37 35 63 34 39 35 32 DSTAT=92375c4952
00000014h 32 35 31 33 34 62 37 33 38 64 61 39 37 37 33 39 25134b738da97739
00000015h 31 32 62 33 31 62 62 30 35 31 66 38 31 39 38 36 12b31bb051f81986
00000016h 31 38 33 36 37 61 64 61 62 34 34 61 65 64 32 66 18367adab44aed2f
00000017h 37 33 63 33 65 39 0d 0a 0d 0a
printdata过程,需要增加识别recv send
00000018h 21
00000000h 21
printdata过程,需要增加识别recv send
00000001h 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a GET / HTTP/1.100000002h 41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 41 63 63 Accept: */*
Acc
00000003h 65 70 74 2d 4c 61 6e 67 75 61 67 65 3a 20 7a 68 ept-Language: zh
00000004h 2d 63 6e 0d 0a 41 63 63 65 70 74 2d 45 6e 63 6f -cn
Accept-Enco
00000005h 64 69 6e 67 3a 20 67 7a 69 70 2c 20 64 65 66 6c ding: gzip, defl
00000006h 61 74 65 0d 0a 55 73 65 72 2d 41 67 65 6e 74 3a ate
User-Agent:
00000007h 20 4d 6f 7a 69 6c 6c 61 2f 34 2e 30 20 28 63 6f Mozilla/4.0 (co
00000008h 6d 70 61 74 69 62 6c 65 3b 20 4d 53 49 45 20 36 mpatible; MSIE 6
00000009h 2e 30 3b 20 57 69 6e 64 6f 77 73 20 4e 54 20 35 .0; Windows NT 5
0000000ah 2e 30 3b 20 54 65 6e 63 65 6e 74 54 72 61 76 65 .0; TencentTrave
0000000bh 6c 65 72 20 3b 20 2e 4e 45 54 20 43 4c 52 20 32 ler ; .NET CLR 2
0000000ch 2e 30 2e 35 30 37 32 37 29 0d 0a 48 6f 73 74 3a .0.50727)
Host:
0000000dh 20 77 77 77 2e 62 61 69 64 75 2e 63 6f 6d 0d 0a www.baidu.com0000000eh 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 4b 65 65 70 Connection: Keep
0000000fh 2d 41 6c 69 76 65 0d 0a 43 6f 6f 6b 69 65 3a 20 -Alive
Cookie:
我感觉csdn很多高手其实也不在乎分数的多少。您的标题很多人看了心里可能有想法。“哎,算了”,于是看都没有看。不要希望找到完整的答案,也不会有完全的答案出现。听听意见也可能是最好的。您的问题我建议发到汇编。或者是底层设计,MASM做Windows底层开发那里去。
关于内存寻址去那里可能找到答案和好的建议希望更大。MFC这里不太合适吧。
对应c函数就是isprint(ch)