Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2018, 22:40   #1
Андрей Цапко
Пользователь
 
Регистрация: 10.04.2017
Сообщений: 66
По умолчанию Не приходил сигнал на 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, 05:51   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо улучшить Recording, подключенный через TWILIO gleo Фриланс 0 15.03.2016 18:23
компилятор gcc (linux) Uefa Помощь студентам 2 22.11.2014 17: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