
Linux使用域套接字
IT8343
这个作者很懒,什么都没留下…
展开
-
域套接字简介及范例(三)————抽象路径名
什么叫抽象路径名,这其实是Linux特有的一个特性,它允许将一个Unix域套接字绑定到一个名字上,且不会在文件系统中创建这个名字的文件。如果要创建一个抽象名字空间的绑定,必须要将sun_path字段的第一个字节设置成NULL('\0'),而且和普通的文件系统名字空间不同的是,系统会用sun_path除第一个字节之后余下的所有字节当做抽象名字。也就是说在解析抽象路径名时需要用到sun_path字段当中所有的字节,而不是像解析普通路径名一样,解析到第一个NULL就可以停止了。因为不会再在文件系统中创建文件了,所原创 2021-01-19 17:31:49 · 1713 阅读 · 1 评论 -
域套接字简介及范例(二)————数据包形式
数据包形式和UDP并不完全一样,在UDP中,服务器可以在接收到客户端的消息之后给与客户端回应。但是在域套接字中,这是不被允许的,因为域套接字不像UDP那样封装了包头等协议可用于解析出地址。所以在数据包形式中,如果要实现这种双向通信,客户端也必须要绑定一个地址。服务端示例代码:#include "../common.h"#define FILE_PATH_SER "./my_socket_s"#define FILE_PATH_CLI "./my_socket_c"int main.原创 2021-01-19 09:59:53 · 328 阅读 · 0 评论 -
域套接字简介及范例(一)————流形式
域套接字使用方式和TCP/IP一样:相比共享内存而言,它是主动发数据,被动收数据,拥有阻塞和非阻塞模式以及它们之间的切换。域套接字传输稳定,无论是否建立连接,都不会发生丢包的情况。同时,它的传输速度比本地环回快很多。域套接字如同TCP/IP一样,也分为流(SOCK_STREAM)和数据包(SOCK_DGRAM),采用流传输时也需要解决粘包问题。服务器端:#include "../common.h"#define FILE_PATH "./my_socket"int main()原创 2021-01-18 19:31:50 · 1188 阅读 · 0 评论