如何识别(或连接)用户ID与传入套接字?

时间:2011-01-26 16:58:59

标签: c++ qt sockets client

我需要识别Socket的唯一ID。这是使用套接字描述符的正确方法吗? 套接字描述符是唯一的吗?

  

例如

QTcpSocket* pClientSocket = nextPendingConnection();
int id = pClientSocket->socketDescriptor();
User user(id);

/*...*/

void slotReadClient(){
socket = (QTcpSocket*)sender();
user = users.find(socket->socketDescriptor());
user->doAny();
}

1 个答案:

答案 0 :(得分:2)

套接字ID(实际上是文件描述符)在其生命周期内是即时唯一的。含义如下:

int my_fd socket(...);

/* during this time no calls to socket will ever return my_fd */

close(my_fd);

我不确定用户ID的含义细节,我认为这不起作用,因为如果同一个用户连接两次,他们会有不同的fds(可能)。但是,如果您只是想要一种识别当前连接的方法,并且不会跨会话进行id持久性,那么这正是应该如何完成的。