Предлагаю сначала разобраться в ситуации при помощи C-кода. Для этого приведите вывод утилиты ifconfig с машины, на которой запускаете тестовую программу. Дополнительно надо модифицировать тестовую программу и заменить printf("no bind") на вызов perror("bind()") и QHostAddress() на inet_aton():
int sock;
struct sockaddr_in addr;
sock = socket(AF_INET, SOCK_DGRAM, 0);
if(sock < 0)
{
printf("no socket");
return 0;
}
addr.sin_family = AF_INET;
addr.sin_port = htons(8888);
inet_aton("192.168.1.9", &addr.sin_addr);
if(bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0)
perror("bind()");
else
printf("yes bind");
close(sock);
Приведите сообщение об ошибке, которое выводится после вызова bind().