免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2323 | 回复: 1
打印 上一主题 下一主题

识别缓冲区SOCKET recv(buf)以固定字符结尾的字符串,遇到字符结束标志就换行显示 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-05 12:42 |只看该作者 |倒序浏览
例如我send()发送的数据时12$13$14$15$16$17$,recv()接收到后怎么对缓冲区数据处理,使数据以12  13 14 15 16 17 输出,即遇到字符$就换行,或者加一个空格结束,数据比较多。希望算法详细点,最好代码给全,可以运行。请大侠指教,谢谢
谢谢,请帮忙补充一下代码,谢谢我是新手,大侠
//接收数据,在文本框显示代码
UINT recv_thd(LPVOID p)
{
int res;

//char msg[1024];
CString s;
CMfc_clientDlg * dlg = (CMfc_clientDlg *) AfxGetApp()->GetMainWnd();
dlg->update("in thd");

while(1)
{
if( (res = recv(sock, msg, 1024*300, 0)) == -1)//返回说明: 成功执行时,返回接收到的字节数
{         //该函数的第一个参数指定接收端套接字描述符; 第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据;
//第三个参数指明buf的长度; 第四个参数一般置0。
dlg->update("失去连接");
break;
}
else
{
msg[res] = '\0';//接收到的字节数,结束字符串\0
dlg->update("server:" +CString(msg));
//
}
}

//closesocket(sock);
return 0;
}

论坛徽章:
0
2 [报告]
发表于 2013-05-05 12:43 |只看该作者
如果这样处理:send发送的数据recv接收到缓冲区之后,再对缓冲区数据进行处理,可以先将缓冲区数据保存到string对象中,然后利用string对象的find、substr等函数操作,
具体代码是怎么样的,大侠
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP