Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 15.05.2018, 23:40   #1
Андрей Цапко
Форумчанин
 
Регистрация: 10.04.2017
Сообщений: 65
Репутация: 10
По умолчанию Обработка сигналов

Пытаюсь сделать обработку сокетов через сигналы. Не приходил сигнал на listen сокет, я попробовал на уже подключенный сделать. Все равно 0 сигналов. Тестирую через телнет, платформа Ubuntu 18.04, компилятор GCC. Подскажите, что не так.

Код:

int main(){
	int fd;
	struct sockaddr_in addr;
	struct sigaction act;

	fd=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	if(fd<0){
		return -1;
	}

	addr.sin_family=AF_INET;
	addr.sin_port=htons(100);
	addr.sin_addr.s_addr=htonl(0);

	int opt=1;
	if(setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&opt, sizeof(opt))<0){
		close(fd);
		return -1;
	}
	
	if(bind(fd, (struct sockaddr *)&addr, sizeof(addr))<0){
		close(fd);
		return -1;
	}

	if(listen(fd, SOMAXCONN)<0){
		close(fd);
		return -1;
	}

	sigemptyset(&act.sa_mask);
	act.sa_sigaction=[](int number, siginfo_t *info, void *context){
		cout<<number<<endl;
	};
	act.sa_flags=SA_SIGINFO;

	int newfd=accept(fd, NULL, NULL);

	if(fcntl(newfd, F_SETFL, O_ASYNC)<0){
		cout<<"fcntl-1"<<endl;
		close(fd);
		return -1;
	}

	if(fcntl(newfd, F_SETSIG, SA_SIGINFO)<0){
		cout<<"fcntl-1"<<endl;
		close(fd);
		return -1;
	}
	sigaction(newfd, &act, NULL);

	cin>>opt;

	return 0;
}

Андрей Цапко вне форума   Ответить с цитированием
Старый 17.05.2018, 06:51   #2
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 1,704
Репутация: 496

icq: 359393755
По умолчанию

Название темы не соответствует содержанию. Вот например официальное описание термина
__________________
ICQ - 359393755 E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработчик софта - обработка сигналов EgorKus Фриланс 12 15.09.2017 10:20
перехват сигналов с клавиатуры(C++) slip666slip Помощь студентам 11 16.12.2014 22:27
Генерация сигналов USB Krasi Общие вопросы C/C++ 4 10.05.2011 09:31
обработка сигналов Yelisey Общие вопросы C/C++ 1 01.05.2011 01:09


23:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru