怎样设置一个socket的发送缓冲区的长度,它的默认的发送缓冲区的大小为多少啊?

xzhangjie 2001-11-02 07:18:33
加精
...全文
1111 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
copy_paste 2001-12-09
  • 打赏
  • 举报
回复
GZ(不允许回复为空!!不允许有 gz、up!!!!来点创意吧!!!)
xzhangjie 2001-11-05
  • 打赏
  • 举报
回复
thanks a lot!
也很高兴认识你."只懂WinSock",
小弟我对winsock不熟悉,但现在又要做网络方面的应用,谢谢两位大哥的帮助!
"只懂WinSock",我们也交个朋友吧.

我今年毕业,计算机专业的,在上海的一家实时监控公司做事,现在做远程监控的部分.
caiyi9000 2001-11-05
  • 打赏
  • 举报
回复
WINDOWS下默认的SOCKET发送和接收缓冲区大小均是4K,你可以用如下代码读出此大小,并修改发送和接收缓冲区。

int rcvbuf;
int rcvbufsize=sizeof(int);

if(getsockopt(m_Socket,SOL_SOCKET,SO_MAX_MSG_SIZE,(char*)&rcvbuf,&rcvbufsize)!
=SOCKET_ERROR)
{
if(rcvbuf<65536)
rcvbuf=65536;
setsockopt(m_Socket,SOL_SOCKET,SO_RCVBUF,(char*)&rcvbuf,rcvbufsize);
}

if(getsockopt(m_Socket,SOL_SOCKET,SO_SNDBUF,(char*)&rcvbuf,&rcvbufsize)!
=SOCKET_ERROR)
{
if(rcvbuf<65536)
rcvbuf=65536;
setsockopt(m_Socket,SOL_SOCKET,SO_SNDBUF,(char*)&rcvbuf,rcvbufsize);
}
lurenfu 2001-11-05
  • 打赏
  • 举报
回复
飞狐同志,不好意思,你的QQ加不上。我的是2067590,你加我吧,我们QQ交流
xzhangjie 2001-11-04
  • 打赏
  • 举报
回复
能交个朋友吗?
我的qq: 5550999
xzhangjie 2001-11-04
  • 打赏
  • 举报
回复
能写出设置的代码吗?:


回复人: lurenfu(什么都不懂) (2001-11-2 17:45:37) 得0分
理论上可以做到这一点。有一个libpcap库可以拦截TCP/IP的数据包,如果你拦截后马上伪造一个回应数据包应该是可以做到的,只是我也没有试验过。
顺便说一句,libpcat本是unix下的一个工具库,也有windows版的。我这儿就有
回复人: xzhangjie(飞天狐狸) (2001-11-2 19:12:26) 得0分

to lurenfu(什么都不懂)
能给我发一份window下的吗?我非常需要这个东西.谢谢先!
我的Email: xzhangjie@263.net


lurenfu 2001-11-03
  • 打赏
  • 举报
回复
我在windows98下面测试结果竟然是不可思议的send_buf_size = 256, recv_buf_size=1,这是怎么回事?有人来解不?
lurenfu 2001-11-03
  • 打赏
  • 举报
回复
我在linux内核2.4.10上测试结果为:send buf size = 16384(bytes),recv buf size = 87380(bytes)。
lurenfu 2001-11-03
  • 打赏
  • 举报
回复
你可以用getsockopt()的SO_SNDBUF获取发送缓冲区大小,用setsockopt的SO_SNDBUF设置发送缓冲区大小。同理,SO_RCVBUF是接收缓冲区大小

4,387

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧