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

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

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


Ответ
 
Опции темы
Старый 15.05.2018, 23:40   #1
Андрей Цапко
Форумчанин
 
Регистрация: 10.04.2017
Сообщений: 66
Репутация: 10
По умолчанию Не приходил сигнал на listen сокет, я попробовал на уже подключенный сделать. Все равно 0 сигналов. Тестирую через телнет, платформа Ubuntu 18.04, компилятор GCC

Пытаюсь сделать обработку сокетов через сигналы. Не приходил сигнал на 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,883
Репутация: 513

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

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

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо улучшить Recording, подключенный через TWILIO gleo Фриланс 0 15.03.2016 19:23
компилятор gcc (linux) Uefa Помощь студентам 2 22.11.2014 18:04
Ассемблерные вставки в Си (компилятор gcc). pufystyj Общие вопросы C/C++ 4 11.03.2012 20:06
Ubuntu + Eclipse + GCC Сtrl Помощь студентам 6 31.10.2011 19:41
Как сделать простейшую передать файл через Сокет SevenXP C/C++ Сетевое программирование 1 25.05.2011 13:55


09:28.


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

RusProfile.ru


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