+ -
当前位置:首页 → 问答吧 → linux c socket与flash socket问题

linux c socket与flash socket问题

时间:2010-07-23

来源:互联网

linux c  socket发数据flash socket可以收到

flash socket 发送二进制到linux c socket 每次收到的都是0

请大侠现身相助?

作者: youzlm   发布时间: 2010-07-23

没代码, 你要我们怎么帮忙?
凭空给你猜?

作者: mgqw   发布时间: 2010-07-23



QUOTE:
没代码, 你要我们怎么帮忙?
凭空给你猜?
mgqw 发表于 2010-07-23 16:27




    flash端代码不好弄,c的代码是最简单一个处理
int len = 0;
char data[100];
memset(data , 0 , 100);
len = recv(new_client, data, 100, 0);
if(len > 0)
printf("%s", data);

作者: youzlm   发布时间: 2010-07-23

这样的问题,建议先抓包,看看到底是哪里出了问题,是根本就没发,还是发了,对方没有做接收处理,定位后在进行下一步分析

作者: rain_fish   发布时间: 2010-07-23

flash端发的数据都是0

作者: rune_zhang   发布时间: 2010-07-23

回复 rune_zhang


    flash发的数据都是0?
    你把memset改成 memset( str, 'e', 100 );
    然后用gdb看看

作者: mgqw   发布时间: 2010-07-23

本帖最后由 mgqw 于 2010-07-23 16:41 编辑

要知道  0 在ASCII码中是NULL   也就是字符串的结束符
用printf肯定看不出来, 要看也只能用gdb看data字符串的内容

作者: mgqw   发布时间: 2010-07-23

可以排除的是,flash端的包有发送过来。
只是接收时好像出了问题。我再试试。

作者: youzlm   发布时间: 2010-07-23

这种通信问题一般都是祭出wireshark这样的大杀器看通信格式是否正确

作者: davelv   发布时间: 2010-07-23



QUOTE:
要知道  0 在ASCII码中是NULL   也就是字符串的结束符
用printf肯定看不出来, 要看也只能用gdb看data字符 ...
mgqw 发表于 2010-07-23 16:40




    没错看到了,,用gdb看到了。

data内容是:\000\t\000\d\000\000\000d, 'e' <repeats 1016 times>

打印出来还是0

作者: youzlm   发布时间: 2010-07-23