我是一个插座/网络代码新手,所以这可能是一个愚蠢的问题。多个本地进程具有相同的套接字
我使用AF_INET协议运行多个本地“客户端”和本地“服务器”。
但是,当我尝试所有的客户端到服务器,他们似乎连接在同一个套接字,从单一的荒谬的阅读。
下面的代码演示了与任何服务器代码无关的问题。
#include <iostream>
#include <sys/socket.h>
int main(int argc, char* argv[])
{
int sockfd; // socket file descriptor
sockfd = socket(AF_INET, SOCK_STREAM, 0);
std::cout<<"socket is "<<sockfd<<std::endl;
/* perform various i/o tasks */
return 0;
}
的插座这里总是3
无论多少这些进程都在运行。
这是预期吗?如果是这样,那么什么可能是最好的方式去做这种事情,因为我想使用互联网协议,以允许我的本地网络或在线相同的功能。
'socket'返回一个文件描述符,默认情况下该文件描述符总是独立于进程。这是正常的,不会影响在回送接口上可以建立多少个连接。 –
_“当我尝试和所有客户端到服务器”_? _“它们似乎连接在同一个套接字上,从单个无意义的”_“中读取数据。 –