s = socket(PF_LOCAL,SOCK_DGRAM,0); if ( s == -1 ) perror("socket()"); 数 据报套接口对于PF_LOCAL套接口是很合适的,因为他们更可靠,并且他们可以保留信息边界。他们并不会在网络传输中丢失错误,而PF_INET数据报 会,因为他们保留在本地主机内部。然而,我们必须了解由内核缓冲区的缺少会造成PF_LOCAL...
int udpFD = socket(PF_INET, SOCK_DGRAM,IPPROTO_UDP); 分别解释一下这两行,socket 第一个参数PF_INET表示是 IPv4 协议族,有时候用AF_INET宏,PF的意思是 Protocol Family 协议族,AF意为 Address Family,在socket.h文件中可以看到,其实是同一个值。 第一个参数还有其他取值PF_INET6表示 IPv6,PF_LOCAL表...
{structsockaddr_un name;intsock; size_t size;/*Create the socket*/sock= socket (PF_LOACAL, SOCK_DGRAM,0);if(sock <0) { perror ("socket"); exit (EXIT_FAILURE); }/*Bind a name to the socket.*/name.sun_family=AF_LOCAL; strncpy (name.sun_path, filename,sizeof(name.sun_path))...
h" int main(void) { int sock; if ((sock = socket(PF_INET, SOCKSTREAM, IPPROTO_TCP)) < 0) ERR_EXIT("socket); struct sockaddr_in servaddr; memset(&servaddr, 0, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(5188); servaddr.sin_addr.s_addr...
(1<<3)/*需要设置成非阻塞模式*//*PF_LOCAL:本地域套接字类型下,置为下面标识,标识设置套接字对应文件的属性是用户组可写权限*/#defineCLIB_SOCKET_F_ALLOW_GROUP_WRITE(1<<4)#defineCLIB_SOCKET_F_SEQPACKET(1<<5)/*socket 类型SOCK_SEQPACKET : SOCK_STREAM*//*设置套接字SO_PASSCRED属性:允许或...
PF_UNIX, unix_create }; static int __init af_unix_init(void) { ... sock_register(&unix_family_ops); ... return 0; } 所以从上面的代码可以指定,对于 Unix socket 的话,net_families[family]->create() 这行代码实际调用的是 unix_create() 函数。
PF_LOCAL:主机内部通信协议族,该协议族使物理上运行在同一台设备上的应用程序可以用Socket APIs彼此通信 PF_INET:Internet第4版协议族,该协议族使应用程序可以与网络上其他地方运行的应用程序进行通信 int type:指定通信的语义。支持以下几种主要的socket类型: ...
short int sin_family; // Address family 一般来说 AF_INET(地址族)PF_INET(协议族 ) unsigned short int sin_port; //sin_port存储端口号(使用网络字节顺序),在linux下,端口号的范围0~65535,同时0~1024范围的端口号已经被系统使用或保留 struct in_addr sin_addr; //存储IP地址 ...
domain 就是指 PF_INET、PF_INET6 以及 PF_LOCAL 等,表示IPV4,IPV6或者域套接字等套接字类型。 type 可用的值是:SOCK_STREAM: 表示的是字节流,对应 TCP;SOCK_DGRAM:表示的是数据报,对应 UDP;SOCK_RAW: 表示的是原始套接字。 下面我们看一个建立的服务端创建的例子,首先使用socket接口创建一个socket,然后...
常用的协议族有,AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。与socket的参数一样 <socket.h> /* Address families. */ #define AF_UNSPEC PF_UNSPEC #define AF_LOCAL PF_LOCAL #define AF_UNIX PF_UNIX #define AF_FILE PF_FILE #define AF_INET PF_INET #define AF_...