日期:2014-05-16  浏览次数:20658 次

socket变成 sockaddr_un问题
使用unixdomain通信,写了一个服务器端,用recvform(fd, buf, sizeof(buf), (struct sockaddr *)&client, &len) 来接收客户端的信息,当接收到客户端信息的时侯 用printf("%s\n", client.sun_path)打印,为什么打印出来的是空呢? 这个sun_path 里面放的是什么呢?

------解决方案--------------------
探讨

引用:

我测试过了,也解决了我一直以来的一个疏忽。

怨不着记得APUE里说过UNIX DOMAIN客户端最好也要主动bind在一个地址而不要由内核自动绑定,原来UNIX DOMAIN的客户端如果不主动bind在一个地址,那么服务端的recvfrom是得不到客户端地址的。

这算是unix domain的特性了,记住就好。

嗯 非常感谢啊 。今天反复的测试后……