对于UDP,so_type等于SOCK_DGRAM,而对于TCP,so_type等于SOCK_STREAM so_options so_options是一组改变Socket行为的标志。 | so_options | 描述 | | SO_ACCEPTCONN | Socket接收进入的连接(仅用于内核) | | SO_BROADCAST | Socket能够发送广播报文 | | SO_DEBUG | Socket记录排错信息 | | SO_DONTROUTE | ...
目前,在domain参数为PF_INET的SOCK_STREAN的套接口中,protocol的参数为0意味着内核选择IPPROTO_TCP,也就是套接口使用TCP/IP协议。 使用PF_INET和SOCK_DGRAM 这个组合告诉内核选择UDP协议。也就是选择IPPROTO_UDP。 下表是一个总结: 当然Linux支持许多的协议,此处不多说。 有关协议族的一些宏定义在sys/socket.h头...
UDP套接字的SOCK_DGRAM名字来自于单词“datagram”(数据报)。
比如 ,AF_INET,AF_UNIX(本地进程间通信,不知道对端地址),最常见的套接字域是AF_INET,它是指Internet网络,许多Linux局域网使用的都是该网络,当然,因特网自身用的也是它。 AF_INET和PF_INET效果相同。 l套接字类型: SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等 常见的2个类型的套接...
int socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); 满足IPv4协议,且是面向消息传输的只有:IPPROTO_UDP int socket(PF_INET,SOCK_STREAM,IPPROTO_UDP); 最后附上Windows下初始化Winsock的模板写法: SOCKET soc=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
1) SOCK_STREAM 表示面向连接的数据传输方式。数据可以准确无误地到达另一台计算机,如果损坏或丢失,可以重新发送,但效率相对较慢。常见的 http 协议就使用 SOCK_STREAM 传输数据,因为要确保数据的正确性,否则网页不能正常解析。 2) SOCK_DGRAM 表示无连接的数据传输方式。计算机只管传输数据,不作数据校验,如果数据...
1) SOCK_STREAM 表示面向连接的数据传输方式。数据可以准确无误地到达另一台计算机,如果损坏或丢失,可以重新发送,但效率相对较慢。常见的 http 协议就使用 SOCK_STREAM 传输数据,因为要确保数据的正确性,否则网页不能正常解析。 2) SOCK_DGRAM 表示无连接的数据传输方式。计算机只管传输数据,不作数据校验,如果数据...
TYPE套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM或SOCK_DGRAM PROTOCOL应该是(getprotobyname('tcp'))[2]。指定实际使用的传输协议。 所以socket 函数调用方式如下: useSocket# 定义了 PF_INET 和 SOCK_STREAMsocket(SOCKET,PF_INET,SOCK_STREAM,(getprotobyname('tcp'))[2]); ...
domain指明所使用的协议族,通常为PF_INET,表示互联网协议族(TCP/IP协议族);type参数指定socket的类型:SOCK_STREAM 或SOCK_DGRAM,Socket接口还定义了原始Socket(SOCK_RAW),允许程序使用低层协议;protocol通常赋值"0"。Socket()调用返回一个整型socket描述符,你可以在后面的调用使用它。
socket函数原型为: int socket(int domain, int type, int protocol); domain指明所使用的协议族,通常为PF_INET,表示互联网协议族(TCP/IP协议族);type参数指定socket的类型: SOCK_STREAM 或SOCK_DGRAM,Socket接口还定义了原始Socket(SOCK_RAW),允许程序使用低层协议;protocol通常赋值 “0”。 Socket()调用返回一...