1.1 UDP±à³Ì
1.1.1 UDP¿Í»§¶Ë±à³Ì
1) °ÑIPµØÖ·£¬IPÐÒé×å·â×°³ÉÌ×½Ó×Ö socket AF_INET SOCK_DGRAM
2) ±àд·þÎñÆ÷ÐÅÏ¢½á¹¹Ìå
3) ͨ¹ýÊý¾Ý°ü·¢ËÍ/½ÓÊÕº¯Êý½øÐÐÍøÂçͨÐÅ sendto/recvfrom
4) ¹Ø±ÕÌ×½Ó×Ö close
1.1.2 UDP·þÎñÆ÷±à³Ì
1) °ÑIPµØÖ·£¬IPÐÒé×å·â×°³ÉÌ×½Ó×Ö socket AF_INET SOCK_DGRAM
2) ±àд·þÎñÆ÷ÐÅÏ¢½á¹¹Ìå
3) °ÑÌ×½Ó×Ö¸Ä×°³É¼àÌýÌ×½Ó×Ö bind
4) ͨ¹ýÊý¾Ý°ü·¢ËÍ/½ÓÊÕº¯Êý½øÐÐÍøÂçͨÐÅ sendto/recvfrom
5) ¹Ø±Õ¼àÌýÌ×½Ó×Ö close
UDPµÄ·þÎñÆ÷²»ÄÜÏȸø¿Í»§¶Ë·¢ÐÅÏ¢£¬±ØÐë¿Í»§¶ËÏÈ·¢ÐÅÏ¢
UDPµÄ·þÎñÆ÷²»ÐèÒªµ÷ÓÃacceptº¯ÊýÈ¥µÈ´ý¿Í»§¶ËµÄÁ¬½Ó½¨Á¢
1.2 UDP±à³ÌÏà¹Øº¯Êý
1.2.1 bind
Í·Îļþ£º
#include <sys/types.h>
#include <sys/socket.h>
º¯ÊýÔÐÍ£º
int bind(int sockfd, const structsockaddr *addr, socklen_t addrlen);
º¯Êý¹¦ÄÜ£º
°ÑͨÐÅÌ×½Ó×Ö¸Ä×°³É¼àÌýÌ×½Ó×Ö
ÐβÎÁÐ±í£º
sockfd£ºÒª¸Ä×°µÄÌ×½Ó×Ö
addr£º·þÎñÆ÷ÐÅÏ¢½á¹¹Ìå
addrlen£º·þÎñÆ÷ÐÅÏ¢½á¹¹Ìå´óС
·µ»ØÖµ£º
³É¹¦£º0
ʧ°Ü£º-1£¬ÉèÖôíÎóÂë
1.2.2 recvfrom
Í·Îļþ£º
#include <sys/types.h>
#include <sys/socket.h>
º¯ÊýÔÐÍ£º
ssize_t recvfrom(int sockfd, void *buf,size_t len, int flags,
struct sockaddr *src_addr,socklen_t *addrlen);
º¯Êý¹¦ÄÜ£º
µÈ´ý¿Í»§¶Ë·¢ËÍÊý¾Ý±¨£¬»á»ñÈ¡µ½¿Í»§¶ËµÄÐÅÏ¢½á¹¹Ìå
ÐβÎÁÐ±í£º
sockfd£º¼àÌýÌ×½Ó×Ö
buf£º»ñÈ¡µ½µÄÊý¾ÝµÄ»º´æÇø
len£º½ÓÊÕÊý¾ÝµÄÉÏÏÞ
flags£º½ÓÊÕ·½Ê½
0£ºÕý³£½ÓÊÕ£¬×èÈûµÈ´ý£¬Êý¾Ý³¬³¤²»½ÓÊÕ
MSG_DONTWAIT£ºÎÞ×èÈûµÈ´ý
src_addr£º¿Í»§¶ËÐÅÏ¢½á¹¹Ìå
addrlen£º¿Í»§¶ËÐÅÏ¢½á¹¹Ìå´óС
·µ»ØÖµ£º
³É¹¦£º½ÓÊÕµ½µÄÊý¾Ý
ʧ°Ü£º-1
Èç¹û¶Ô·½¹Ø±Õ£¬ÄÇô·µ»Ø0
×¢Ò⣺Èç¹ûaddrlenÐβεijõÖµ¸ø0£¬ÄÇôµÚÒ»´Î½ÓÊÕÊý¾ÝµÄʱºò£¬ÊǽÓÊÕ²»µ½¶Ô·½µÄIPµØÖ·µÄ£¬ÏëÒª½ÓÊÕµ½¶Ô·½µÄIPµØÖ·£¬ÄÇô¾ÍµÃ³õֵΪsizeof(structsockaddr)
1.2.3 sendto
Í·Îļþ£º
#include <sys/types.h>
#include <sys/socket.h>
º¯ÊýÔÐÍ£º
ssize_t sendto(int sockfd, const void*buf, size_t len, int flags,
const struct sockaddr*dest_addr, socklen_t addrlen);
º¯Êý¹¦ÄÜ£º
Íùdest_addrÖ¸¶¨µÄ·þÎñÆ÷·¢ËÍÊý¾Ý
ÐβÎÁÐ±í£º
sockfd£ºÍ¨ÐÅÌ×½Ó×Ö
buf£º·¢ËÍÊý¾ÝµÄ»º´æÇø
len£º·¢ËÍÊý¾ÝµÄ´óС
flags£º·¢ËÍ·½Ê½ 0£ºÕý³£·¢ËÍ
src_addr£º·þÎñÆ÷ÐÅÏ¢½á¹¹Ìå
addrlen£º·þÎñÆ÷ÐÅÏ¢½á¹¹Ìå´óС
·µ»ØÖµ£º
³É¹¦£º·¢Ë͵ÄÊý¾Ý³¤¶È
ʧ°Ü£º-1£¬ÉèÖôíÎóÂë
1.2.4 ´´½¨Ì×½Ó×Ö£ºsocket
Í·Îļþ£º
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
º¯ÊýÔÐÍ£º
int socket(int domain, int type, intprotocol);
º¯Êý¹¦ÄÜ£º
¸ù¾ÝÐÒé×壬ͨÐÅ·½Ê½µÈ´´½¨Ò»¸öÓÃÓÚͨÐŵÄÌ×½Ó×Ö
ÐβÎÁÐ±í£º
domain£ºÍøÂçͨÐŵÄÐÒé×å AF_INET£ºIPv4 AF_INET6£ºIPv6
type£ºÍ¨Ðŵķ½Ê½ SOCK_STREAM£ºTCP SOCK_DGRAM£ºUDP
protocol£ºÆ¥ÅäÐÒé×å 0£º×Ô¶¯Æ¥Åä
·µ»ØÖµ£º
³É¹¦£ºÌ×½Ó×Ö
ʧ°Ü£º-1£¬ÉèÖôíÎóÂë