udp中socket的用法

udp中socket的用法

ID:39469091

大小:127.50 KB

页数:16页

时间:2019-07-04

udp中socket的用法_第1页
udp中socket的用法_第2页
udp中socket的用法_第3页
udp中socket的用法_第4页
udp中socket的用法_第5页
资源描述:

《udp中socket的用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、struct  sockaddr  {                 unsigned  short  sa_family;                   char  sa_data[14];           };  上面是通用的socket地址,此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。具体到Internet  socket,用下面的结构,二者可以进行类型转换  。 struct  sockaddr_in  {                 short  int  sin_family;

2、                   unsigned  short  int  sin_port;                   struct  in_addr  sin_addr;                   unsigned  char  sin_zero[8];           };  struct  in_addr就是32位IP地址。  struct  in_addr  {                 union{ struct{u_chars_b1,s_b2,s_b3,s_b4;}S_un_b;   struct{u_sho

3、rts_w1,s_w2;}S_un_w;   u_longS_addr;                }S_un;#defines_addr S_un.S_addr     };  in_addr()是将一个点分制的IP地址(如192.168.0.1)转换为上述结构中需要的32位IP地址(0xC0A80001)。通常的用法是:   int  sockfd;   struct  sockaddr_in  my_addr;   sockfd  = socket(AF_INET,  SOCK_STREAM,  0);     my_addr.sin_family

4、  =  AF_INET;     my_addr.sin_port  =  htons(MYPORT);     my_addr.sin_addr.s_addr  =  inet_addr("192.168.0.1");   bzero(&(my_addr.sin_zero),  8);     bind(sockfd,  (struct  sockaddr  *)&my_addr,  sizeof(struct  sockaddr));sa_family是地址家族,一般都是“AF_xxx”的形式。通常大多用的是都是AF_INET,代表TCP/IP协议族。

5、sa_data是14字节协议地址。sin_family指代协议族,在socket编程中只能是AF_INETsin_port存储端口号(使用网络字节顺序)sin_addr存储IP地址,使用in_addr这个数据结构sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。sockaddr_in和sockaddr是并列的结构,指向sockaddr_in的结构体的指针也可以指向sockaddr的结构体,并代替它。也就是说,你可以使用sockaddr_in建立你所需要的信息,然后用进行类型转换就可以了bzero((cha

6、r*)&mysock,sizeof(mysock));sin_zero初始值应该使用函数bzero()来全部置零。最典型的源、目的节点socket定义对于源、目的地址和源、目的地址端口,需要建立两个socket变量cliaddr绑定源地址和源端口。servaddr用于connect和sendto的设定目的地址和目的端口。structsockaddr_inservaddr,cliaddr;create_socket(char*server_addr_string,unsignedintNBO,HBO二者转换inet_addr()    将字符串点数格式地址转化

7、成无符号长整型(unsignedlongs_addrs_addr;)inet_aton()    将字符串点数格式地址转化成NBOinet_ntoa()server_port){源socket赋值       bzero(&cliaddr,sizeof(cliaddr));       cliaddr.sin_family=AF_INET;       通常TCP/UDP协议源地址和端口都是随机的       cliaddr.sin_addr.s_addr=htons(INADDR_ANY);       cliaddr.sin_port=htons(0);

8、目的socket赋值       bzero(&se

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。