社区
网络编程
帖子详情
recv接收不到字符串
taft
2004-08-10 06:48:15
在客户端发送buf
iSend=send(sClient,buf,sizeof(buf),0);
服务器端接收
iLen = recv(sAccept,buf,sizeof(buf),0);
iLen和发送的长度一样,但就是在接收的buf 里面全是0 这个是怎么回事哦?
先谢了
...全文
188
15
打赏
收藏
recv接收不到字符串
在客户端发送buf iSend=send(sClient,buf,sizeof(buf),0); 服务器端接收 iLen = recv(sAccept,buf,sizeof(buf),0); iLen和发送的长度一样,但就是在接收的buf 里面全是0 这个是怎么回事哦? 先谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xujungood
2004-08-11
打赏
举报
回复
接受端的缓冲区大小才2个字节?
自由的风
2004-08-11
打赏
举报
回复
调试呗,那么几行代码任谁也看不出问题,况且还只有recv端的代码,谁知道你的send端是否正确
taft
2004-08-11
打赏
举报
回复
我把2改为 sizeof(buf)
bluwindhrt
2004-08-11
打赏
举报
回复
你才接收两个字节,就算发送方是有效的数据,这前两个字节都为0也不是不可能啊!
VCSQLVB
2004-08-11
打赏
举报
回复
你的接受端仅能正常接收一次,如果客户端再次发送数据(没重新连接的话),将失败。
VCSQLVB
2004-08-11
打赏
举报
回复
能否保证发送的数据正常?
cpmax
2004-08-11
打赏
举报
回复
再把发送方贴出来
airsmith_lh
2004-08-10
打赏
举报
回复
自己怕是发送端发的数据本身就是零
oyljerry
2004-08-10
打赏
举报
回复
这么奇怪的问题!要不设break单步调试看看
taft
2004-08-10
打赏
举报
回复
to howtotell
我用 i=sizeof(buf) 结果是1024
还有
我都把sizeof(buf)改成1024还是不成啊
howtotell
2004-08-10
打赏
举报
回复
下面两句都有问题.
iSend=send(sClient,buf,sizeof(buf),0);
如果buf是char*型,那么就不能用sizeof,这样只是指针的大小,要该写成你传输进去的数据的大小,例如strlen(buf),也可以指定一个比较大的固定值,例如1024;
iLen = recv(sAccept,buf,2,0);
这里接收也要指定大小,指定大点,例如1024没有关系,但是你指定2肯定小了.
taft
2004-08-10
打赏
举报
回复
char buf[1024];
else的内容好像有错误 在哪里呢?
没收到可是iLen都返回长度了的
PingJie
2004-08-10
打赏
举报
回复
buf是什么类型的?
else的内容好像有错误
可能没接收到
taft
2004-08-10
打赏
举报
回复
接收代码:
iLen = sizeof(cli);
while(1)
{
sAccept = accept(sListen,(struct sockaddr *)&cli,&iLen);
if(sAccept==INVALID_SOCKET)
{
AfxMessageBox("accept() Failed",MB_OK,0);
return 0;
}
iLen = recv(sAccept,buf,2,0);
if(iLen == 0)
return 0;
else
if(iLen == SOCKET_ERROR)
{
AfxMessageBox("recv() Failed",MB_OK,0);
return 0;
}
AfxMessageBox(buf,MB_OK,0);
closesocket(sAccept);
closesocket(sListen);
WSACleanup();
return 1;
}
cpmax
2004-08-10
打赏
举报
回复
把代码帖出来看一下!
socket编程中
recv
函数
接收
到的
字符串
乱码解决方法
for(int i = 0; i < 2; i++){
recv
_len =
recv
(s_server,
recv
_buf, 40, 0); if (
recv
_len < 0) { cout << "接受失败!" << endl; break; } else { cout << "服务端信息:" <<
recv
_buf << endl; } cin >> send_buf; send_len =
python socket.
recv
() 一直不停的返回空
字符串
原因。
python socket.
recv
() 一直不停的返回空
字符串
原因。 我遇到的是,因为客户端异常断开连接,之后服务端就一直
接收
到空
字符串
。 这样会无法分辨是客户端真的发了一个空串还是怎么样。 下面是复现问题的demo。 先运行server端: # coding=utf-8 import socket if __name__ == '__main__': host = 'localhost' port = 8765 server = socket.socket(sock
TCP的
recv
问题
TCP编程时,
recv
()函数默认阻塞等待,返回socket携带的信息,要根据业务场景设计
recv
的等待和结束机制:
recv
阻塞,以
接收
空
字符串
结束 如下TcpServer.py,为通常的
recv
机制: 因为客户端单次send数据长度可能超过设置的1024,所以把
recv
放到循环体内,以保证
接收
数据流的完整性。 但是不可能让
recv
一直阻塞等待这里,通常的做法就是判断数据长度为空则退...
python socket.
recv
() 一直不停的返回空
字符串
,客户端怎么判断连接被断开?
python socket.
recv
() 一直不停的返回空
字符串
,客户端怎么判断连接被断开?
CH579 串口
接收
长
字符串
官方例程中串口中断有字符限制,根据业务需要编写一个能
接收
更长的数据的串口程序。 #include "CH57x_common.h" #include <stdio.h> UINT8 RxBuff[36]; //存储要
接收
的
字符串
UINT8 Buff[40]; //串口
接收
缓冲数组 UINT8 RxID = 0; //
字符串
存储自增变量 /* 主循环 */ int main()
网络编程
18,356
社区成员
64,217
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章