У меня есть реализация UDP-сервера, где я получаю ошибку сегментации по вызову recvfrom
.Ошибка сегментации при вызове recvfrom
#define SIZEOF sizeof
#define PKTSIZE 65535
char tmp_buf[PKTSIZE];
struct sockaddr_storage tmp_from;
int tmp_fromlen = 0;
int tmp_bytes;
tmp_bytes = truncate_size_t_to_int(recvfrom(fd, tmp_buf,
SIZEOF(tmp_buf), 0,
(struct sockaddr *) &tmp_from,
(socklen_t *) &tmp_fromlen));
Оба связывания и соединения были успешными до этого. Это процесс с одной нитью. Что не так с этим звонком recvfrom
. Нужно ли делать SIGALRM
обработку сигнала для recvfrom
? truncate_size_t_to_int для size_t для int.
отправьте код еще раз. – Haris
Что такое 'tmp_buf'? Что делает 'SIZEOF'? –
char tmp_buf [PKTSIZE]; #define SIZEOF sizeof – agnel