关于UNIX 网络编程中存在的疑惑。先写下来,等待解决
来源:互联网 发布:阿里云邮箱收发服务器 编辑:程序博客网 时间:2024/05/21 05:43
2-11 UDP Output
A UDP socket has a send buffer size (which we can change with the SO_SNDBUF socket option, Section 7.5), but this is simply an upper limit on the maximum-sized UDP datagram that can be written to the socket. If an application writes a datagram larger than the socket send buffer size, EMSGSIZE is returned.
在这段话中,我进行了试验。
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
int nRes = 0;
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("172.16.1.32");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
int rcvbuf = 1024;
int optlen = sizeof(rcvbuf);
nRes = setsockopt(sockClient,SOL_SOCKET,SO_SNDBUF,(char *)&rcvbuf,sizeof(int));
if (SOCKET_ERROR == nRes)
{
printf("Client setsockopt error :%d /n",GetLastError());
}
char szSendBuf[10000] = "Hello";
nRes = sendto(sockClient,szSendBuf,10000,0,
(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
if (nRes == SOCKET_ERROR)
{
printf("send err..");
}
但是,实际上的结果(调试结果却意外的是):sendto 成功,并实际发送了 10000个字节。按照上面的内容来说,应该是 返回 EMSGSIZE。为什么?
7-5 SO_RCVBUF and SO_SNDBUF Socket Options The receive buffers are used by TCP, UDP, and SCTP to hold received data until it is read by the application.With TCP, the available room in the socket receive buffer limits the window that TCP can advertise to the other end。 设置SERVER端的 接收缓冲区大小为 10240字节之后,但是,从抓到的数据包来看。(MSS = 1460) 通告对方的窗口大小仍然为 65535 。为什么? 7-5 SO_RCVLOWAT and SO_SNDLOWAT Socket Options UDP does not have a send buffer; it has only a send buffer size. 对于这句话,又当如何理解?
- 关于UNIX 网络编程中存在的疑惑。先写下来,等待解决
- 关于Unix网络编程
- VC++网络编程的疑惑
- 关于编译unix网络编程第二卷--进程间通信源代码的问题及解决
- 利用unix网络编程知识自己动手编写一个chatroom程序中遇到的错误与解决
- unix网络编程卷一: 第八章:简单UDP客户端服务器通信(二)-解决客户端一直等待问题
- 网络编程----心得体会(一篇解决你大部分疑惑的文章)
- 编程时遇到的疑惑和解决。
- 关于Unix网络编程源码安装的Tips
- unix网络编程时关于字节序的问题
- 解决网络会计中存在问题的对策
- 【翠字营原创】 网络编程 epoll 中 LT 消息触发方式的疑惑
- Unix网络编程:while中执行waitpid为什么能正确解决同时出现的多个子进程结束
- unix网络编程中一些常见的函数的总结
- 关于继承TPageControl中CanChange的疑惑
- 关于hibernate中save()的疑惑
- linux中关于lcd的疑惑
- 关于android中obtainMessage()的小疑惑
- PreTranslateMessage 与 WindowProc 的关系,
- VC++实现的类似Delphi的TStringList对象列表类
- 正式开始BLOG
- 理解ORACLE数据库字符集
- CA 和 Self-signed Certificate 客户端 如何验证其合法性?
- 关于UNIX 网络编程中存在的疑惑。先写下来,等待解决
- chkconfig命令
- oracle 建立同义synonym
- 适应IE和Firefox
- 大端(Big Endian)与小端(Little Endian)详解
- core foundation create and get Rule
- 链接错误LNK2001
- Java单实例对象或单例模式下的同步问题
- 基础货币