reuse sokcet on Linux
От: maks1180  
Дата: 26.09.11 21:53
Оценка:
1) на компе 1 (ОС — CentOS) программа открывает сокет 443 через bind() listen()
2) с компа 2 подсоединяюсь через telnet к открытому сокету 443
3) на компе 1 закрываю приложение
4) на компе 1 "netstat -an -t | grep 443" вижу соединение к компу 2 вот так "tcp 0 0 192.168.220.129:443 192.168.220.1:2591 TIME_WAIT"
5) перезапускаю на компе 1 свое приложение, оно делает

::socket(AF_INET, SOCK_STREAM, 0);
int optval = 1;
::setsockopt(m_socket, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof(optval));
::setsockopt(m_socket, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));

::bind(m_socket, (sockaddr*) &addr, sizeof(addr)); -> вот здесть получаю ошибку 98, т.е. EADDRINUSE.

В чем дело ? что не так, почему REUSEADDR & REUSEPORT не помогают ?
===============================================
(реклама, удалена модератором)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.