int serverSocketFd = socket(AF_INET, SOCK_DGRAM, 0); bind(serverSocketFd, ...); char buff[BUFFSIZE]; int readCount = recvfrom(serverSocketFd, buff, BUFFSIZE, 0, ...); buff[readCount] = '\0'; printf("Receive from client:%s\n", buff); } 上面代码是一段udp server接收收据的逻辑。
int socket(int family, int type, int protocol); /* * 说明: * socket类似与open对普通文件操作一样,都是返回描述符,后续的操作都是基于该描述符; * family 表示套接字的通信域,不同的取值决定了socket的地址类型,其一般取值如下: * (1)AF_INET IPv4因特网域 * (2)AF_INET6 IPv6因特网域 * (3...
UDP是无连接的,即发送数据之前不需要建立连接,它尽最大努力交付,即不保证可靠交付,在一些要求实时性的通信中多有用到如游戏,视频等,UDP是面向报文的,有别于tcp的一对一通信,udp支持一对一、一对多、多对一和多对多的交互通信等。 一、udp通信用到的相关函数解析 int socket(int domain, int type, int proto...
* Get a socket option on an AF_INET socket. */ //读取选项 static int inet_getsockopt(struct socket *sock, int level, int optname, char *optval, int *optlen) { struct sock *sk = (struct sock *) sock->data; if (level == SOL_SOCKET) return sock_getsockopt(sk,level,optname,optval...
这里从af_inet.c 文件的开头函数逐个分析.介绍函数有点多,主流函数部分额外标红。 1、检测一个端口号是否已被使用 /* * See if a socket number is in use. */ //用于检测一个端口号是否已被使用 //prot表示传输层操作函数集的一个结构,每个传输层协议都有一个proto结构对应 ...
if ((s = socket(AF_INET,SOCK_STREAM,0))<0) perror(“socket”); getsockopt(s,SOL_SOCKET,SO_TYPE,&optval,&optlen); printf(“optval = %d/n”,optval); close(s); } 执行 optval = 1 /*SOCK_STREAM的定义正是此值*/ htonl(将32位主机字符顺序转换成网络字符顺序) ...
int serverSocketFd = socket(AF_INET, SOCK_DGRAM, 0); bind(serverSocketFd, ...); char buff[BUFFSIZE]; int readCount = recvfrom(serverSocketFd, buff, BUFFSIZE, 0, ...); buff[readCount] ='\0';printf("Receive from client:%s\n", buff);} ...
1.创建socket short create_socket(){ short sock; printf("Create a socket\n"); sock = socket(AF_INET,SOCK_STREAM,0); return sock; } 1. 2. 3. 4. 5. 6. 这里用到sys/socket.h头文件中的socket()函数 AF_INET宏也定义在sys/socket.h头文件里,代表IPv4地址,AF代表了Address Family地址族。
我在Linux 内核源代码中发现 PF_INET 和 AF_INET 是相同的。以下代码来自于文件 include/linux/socket.h,是 Linux 内核 3.2.21 树的第204行。 /* Protocol families, same as address families. */ ... #define PF_INET AF_INET - Duke 杜克,之前的内核也是这样吗?我是说在3.0版本之前的内核? - SP...
socketfd=socket(AF_INET,SOCK_STREAM,0); AF_INET表示的是针对Internet的通信协议,允许在远程主机之间通信;SOCK_STREAM表明使用的是TCP协议,这样会提供按顺序的、可靠的、双向的、面向连接的比特流;0表示成功时返回文件描述符,失败时返回-1,这样通过errno即可知道出错的详细情况。