UDP编程
一: socket编程中的几种地址
Socket编程会遇到三种地址, 都是定义的结构体(struct):
Struct in_addr
{
Unsigned int s_addr;
}
这是一个IPv4地址,在IPv4的报文中,源地址和目的地址用32bit表示。通常定义在netinet/in.h中。
Struct sockaddr
{
Unsigned short sa_family;
Char sa_data[14];
};
这就是一个socket地址, 不论什么使用socket的调用都须要这样的格式的地址,所以我们能够看到大部分程序在这里都进行了一个强制转换。
sa_family表示地址类型,通常为AF_UNIX或者是AF_INET;
sa_data[14],存储地址信息,比方IP地址,port号等等。
sockaddr通常定义在bits/socket.h文件里
因为sockaddr这个地址不太easy分析,因此就用了一种easy分析的地址来表示sockaddr, 这就是sockaddr_in产生的原因,通常sockaddr_in定义于netinet/in.h文件里
Struct sockaddr_in{
Unsigned short sa_family;
Unsigned s