Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一种方法可以关闭Unix套接字,使其仅用于读取或写入?_Unix_Sockets - Fatal编程技术网

是否有一种方法可以关闭Unix套接字,使其仅用于读取或写入?

是否有一种方法可以关闭Unix套接字,使其仅用于读取或写入?,unix,sockets,Unix,Sockets,有没有一种方法可以只关闭TCP套接字的“一端”,以清楚地指示连接的一侧已完成对连接的写入?(就像您在每个Unix管道教程中使用管道一样。)或者我应该使用一些带内解决方案,如sentinel值或类似的解决方案吗?您可以使用该方法的第二个参数关闭套接字进行读写: shutdown(sock, SHUT_RD) shutdown(sock, SHUT_WR) 如果服务器正在执行写入操作,并且对写入操作执行了shutdown(),则客户端在尝试读取时(而不是阻塞并等待数据到达)应该获得文件的结尾。但是

有没有一种方法可以只关闭TCP套接字的“一端”,以清楚地指示连接的一侧已完成对连接的写入?(就像您在每个Unix管道教程中使用管道一样。)或者我应该使用一些带内解决方案,如sentinel值或类似的解决方案吗?

您可以使用该方法的第二个参数关闭套接字进行读写:

shutdown(sock, SHUT_RD)
shutdown(sock, SHUT_WR)
如果服务器正在执行写入操作,并且对写入操作执行了shutdown(),则客户端在尝试读取时(而不是阻塞并等待数据到达)应该获得文件的结尾。但是,它仍然能够写入套接字