57-其它套接字选项
还有很多套接字选项,比如SO_KEEPALIVE,SO_RCVBUF,SO_SNDBUF等,这些就不打算在博客里详细去实验,大家可以自己使用opt程序进行实验。以后如果我们遇到了非得用它的时候,再会详细的去讨论它们,本章我们主要掌握几个常见...
还有很多套接字选项,比如SO_KEEPALIVE,SO_RCVBUF,SO_SNDBUF等,这些就不打算在博客里详细去实验,大家可以自己使用opt程序进行实验。以后如果我们遇到了非得用它的时候,再会详细的去讨论它们,本章我们主要掌握几个常见...
Nagle算法尽量减少小分组出现在网络上,而TCP_CORK是完全避免小分组出现在网络上。该选项是在Linux2.2才引入的。cork这个单词,意为“塞子”,我们把TCP发送缓冲区想象成一个水池,而cork的作用就是把这个水池的出口堵住,直...
1.程序路径代码托管在gitos上,请使用下面的命令获取:gitclonehttps://git.oschina.net/ivan_allen/unp.git如果你已经clone过这个代码了,请使用gitpull更新一下。本节程序所使用的程...
1.UDP协议概述UDP协议比TCP协议要简单的多,它是一种无连接的协议。无连接,意味着各个报文没有顺序性,你可能先发了一个数据包A,后发一个数据包B,结果对方却先收到B,后收到A.UDP协议首部也非常简单,如图1.图1UDP首部UDP协议...
前面我们已经知道,UDP编程中的调用sendto和recvfrom产生的错误是不会返回的。主要原因在于套接字是无连接的。要想让它们返回错误,只有让套接字变成有连接的。1.程序路径代码托管在gitos上,请使用下面的命令获取:gitclone...
本文我们对UDP的可靠性进行测试。1.程序路径代码托管在gitos上,请使用下面的命令获取:gitclonehttps://git.oschina.net/ivan_allen/unp.git如果你已经clone过这个代码了,请使用gitp...
在上一篇文章中,非常详细的叙述了有连接和无连接的区别,并严格的定义了什么是有连接。然后讲解了使用connect函数将UDP套接字设置成有连接的。本文我们继续讨论有连接和无连接UDP的区别。1.多次调用connect函数上一讲我们已经知道co...
本文将为基本的UDP套接字编程这一章画上句号。这一篇文章主要将前面学习过的TCP和这一章的UDP结合起来,做一个既能接收TCP连接,又能接收UDP报文的回射服务器程序。1.程序路径代码托管在gitos上,请使用下面的命令获取:gitclon...
设置超时的第二个技术是使用select函数。它使用了select函数的最后一个超时参数,对套接字描述符进行了“预读”。1.程序路径代码托管在gitos上,请使用下面的命令获取:gitclonehttps://git.oschina.net/...
设置套接字超时的第三个技术是使用套接字选项SO_RCVTIMEO与SO_SNDTIMEO,它的优势在于一次设置,所有应用于该套接字的操作都自动带有超时时间。它就好像是一个全局开关。比如对于SO_RCVTIMEO来说,如果设置了它,所有对该套...
看到这个标题你可能会懵圈,没事,只是名字有点恐怖而已。在英文中,它们被称为scatterread和gatherwrite.1.引例看下面一段代码:charbuf1[10];charbuf2[20];charbuf3[15];write(fd...
从这一篇开始,正式进入UnixDomainProtocols——Unix域协议。不过本文标题似乎与Unix域协议没有什么关系,实际上,它是unix域协议的一个应用。接下来,我们进入主题。1.如何在进程间传递描述符早先在Linux环境编程中学...