社区
网络编程
帖子详情
简单问题,csocket的send函数
macrogu
2003-10-21 10:44:14
csocket的send函数buffer大小有没有限制,我一次发送一个接近1M的CString字符串也没有问题,但好像听说buffer大小不能超过ip包的最大值,是不是应该分成几k分几次发送???或者是因为csocket是阻塞的,不管buffer多大,他都会直到发送完成后返回。
...全文
62
4
打赏
收藏
简单问题,csocket的send函数
csocket的send函数buffer大小有没有限制,我一次发送一个接近1M的CString字符串也没有问题,但好像听说buffer大小不能超过ip包的最大值,是不是应该分成几k分几次发送???或者是因为csocket是阻塞的,不管buffer多大,他都会直到发送完成后返回。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CounterHack
2003-10-22
打赏
举报
回复
对于send(),系统可以给你拆包,但Recv()就只能你自己组装了.
while((int nCount = Recv(buf,len)) < 0)
{
//处理数据。
}
fbmsf
2003-10-21
打赏
举报
回复
分割你的buffer,作成 ip包是由你的下层程序来实现的。你是不用管的,但是最好不要一次发的太多。一般send可以发一次就成功,关键是recv,它不是执行一次就按你要得到的字节数来给你的。比如你要recv,1024字节,但它就可以只返回726字节 所以,recv有时要递归来接收,直到得到你想要的字节数为止。
windows_editor
2003-10-21
打赏
举报
回复
你应该对send函数进行改进 以保证每次都发送完全
int xSend(SOCKET sock, void *buf, int len)
{
int byte_left, byte_send, byte_sum;
u_char *p;
byte_left = len;
p = buf;
byte_sum = 0;
while(byte_left > 0) {
byte_send = send(sock, p, byte_left, 0);
if(byte_send < 0) {
perror("writing socket");
return(-1);
}
else if(byte_send == 0 ){
break;
}
byte_sum += byte_send;
byte_left = byte_left - byte_send;
p = p + byte_send;
}
if(byte_sum != len){
return -1;
}
else{
return 0;
}
}
bbyf
2003-10-21
打赏
举报
回复
关注!
VC++网络通讯课程设计
利用MFC为开发工具在多个I/O端点之间实现多对多的通信。通过MFC中CAsync
Socket
类把...C
Socket
对象提供阻塞模式,阻塞
函数
(如Receive()、
Send
()、ReceiveFrom()、
Send
To() 和Accept())直到操作完成后才返回控制权。
基于TCP的网络聊天室
(2)C
Socket
对象的Create
函数
用来创建Windows
Socket
,Create()
函数
会自行调用Bind()
函数
将此
Socket
绑定到指定的地址上面。如下例: Server
Socket
.Create(823); //服务器端需要指定一个端口号,我们用823。 ...
基于TCP的网络聊天室的设计
(2)C
Socket
对象的Create
函数
用来创建Windows
Socket
,Create()
函数
会自行调用Bind()
函数
将此
Socket
绑定到指定的地址上面。如下例: Server
Socket
.Create(823); //服务器端需要指定一个端口号,我们用823。 ...
MFC网络编程之自制浏览器
Socket
相关的操作由一系列API
函数
来完成,比如
socket
、bind、listen、connect、accept、
send
、
send
to、recv、recvfrom等。调用这些API
函数
有一定的先后次序,有些
函数
的参数还比较复杂,对于开发者来说,不是很好用...
C++
socket
编程
Socket
相关的操作由一系列API
函数
来完成,比如
socket
、bind、listen、connect、accept、
send
、
send
to、recv、recvfrom等。调用这些API
函数
有一定的先后次序,有些
函数
的参数还比较复杂,对于开发者来说,不是很好用...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章