socket fd
socket中的fd:fild descriptor,就是一个套接字描述器。
在UNIX中的一切事物都是文件(everything in Unix is a file!)。我们用int在描述socket,实际上,所有的文件描述符都是int,没错,用的是一个整数类型。文件是应用程序与系统(包括特定硬件设备)之间的桥梁,而文件描述符就是应用程序使用这个“桥梁”的接口。在需要的时候,应用程序会向系统申请一个文件,然后将文件的描述符返回供程序使用。返回socket的文件通常被创建在/tmp或者/usr/tmp中。我们实际上不用关心这些文件,仅仅能够利用返回的socket描述符就可以了。
获取对方地址
getpeername:获取socket的对方地址。
struct sockaddr_in sa;
int len = sizeof(sa);
getpeername(m_sockfd, (struct sockaddr *)&sa, &len);
CCLog("[SEND]on sending data %d\n", ntohs(sa.sin_port));
记得要通过ntohs转换一下。
ntohs:作用是将一个16位数由网络字节顺序转换为主机字节顺序
更多关于网络字节顺序与本地字节顺序之间的转换函数请查看
ntohs, ntohl, htons,htonl的比较和详解