powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / TCP and sockets
4 сообщений из 4, страница 1 из 1
TCP and sockets
    #34843547
./dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется следующий код с сервера:

struct sockaddr_in addr;
int flag;

if ( (_srv_socket = socket(PF_INET, SOCK_STREAM, 0)) < 0 ) {
throw SockConnectionException( "Some error" );
}

flag = 1;
if ( ::setsockopt(_srv_socket, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(int)) != 0 ) {
throw SockConnectionException( "Some error" );
}

setsockopt(_srv_socket, SOL_SOCKET, SO_REUSEPORT, &flag, sizeof(int) );

int data = 1;
if (::setsockopt(_srv_socket, SOL_SOCKET, SO_KEEPALIVE, &data, sizeof(data)) < 0)
{
throw SockConnectionException( "Some error" );
}

addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = INADDR_ANY;

if ( bind(_srv_socket, reinterpret_cast<struct sockaddr *>(&addr), sizeof(addr)) != 0 ) {
throw SockConnectionException( "Some error" );
}

if ( listen(_srv_socket, 5) != 0 ) {
throw SockConnectionException( "Some error" );
}



Цепляются клиенты. До 1000 коннектов все нормально, потом через определенное время сервер закрывает соединения, так как полагает, что данные ему не пришли, т.е. он висит на ожидании данных, а их нет. А новые соединения перестают приниматься. В чем может быть проблема?
...
Рейтинг: 0 / 0
TCP and sockets
    #34844672
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переполнение буфера,
ограничения операционки

аффтопитезь: 4 8 15 16 23 42
...
Рейтинг: 0 / 0
TCP and sockets
    #34845173
teras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
./devЦепляются клиенты. До 1000 коннектов все нормально, потом через определенное время сервер закрывает соединения, так как полагает, что данные ему не пришли, т.е. он висит на ожидании данных, а их нет. А новые соединения перестают приниматься. В чем может быть проблема? Не совсем понятно, что именно происходит - клиент передает, а сервер ничего не слышит?
С приведенным кодом все в порядке, но проблема может находиться не здесь, а в цикле приема соединений, приеме/передаче, закрытии сокетов по таймайту и т.п.
...
Рейтинг: 0 / 0
TCP and sockets
    #34845725
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
./dev
if ( listen(_srv_socket, 5) != 0 ) {
throw SockConnectionException( "Some error" );
}



Цепляются клиенты. До 1000 коннектов все нормально, потом через определенное время сервер закрывает соединения, так как полагает, что данные ему не пришли, т.е. он висит на ожидании данных, а их нет. А новые соединения перестают приниматься. В чем может быть проблема?

Возможно не успевает получать новые соединения из очереди в связи с загруженностью системы. Попробуй ее увеличить.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / TCP and sockets
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]