2010-04-27 16 views

Respuesta

7

QTcpServer :: listen toma la dirección de la interfaz que desea escuchar como primer argumento.

Si tiene dirección IP 192.168.0.1 en eth0 y eth1 a continuación en 10.0.0.0.1

QTcpServer serv0; 
QTcpServer serv1; 

serv0.listen(QHostAddress("192.168.0.1"), 8080); 
serv1.listen(QHostAddress("10.0.0.0.1"), 8080); 

serv0 escuchará único puerto 8080 en eth0 y serv1 va a escuchar único puerto 8080 en eth1.

No hay forma de especificar qué interfaz debe usar QTcpSocket ya que se decide por el sistema operativo de acuerdo con la tabla de enrutamiento kernel.

Puede usar QNetworkInterface :: allAddresses() para obtener la lista de direcciones de interfaces disponibles.

1

Eso no es una pregunta de Qt, esa es una pregunta de socket. Vincula() a la dirección en eth1. Tienes que esperar que la tabla de enrutamiento realmente haga lo que esperas cuando hagas eso.

Cuestiones relacionadas