Форум — Development создание сокета 0 0 вызов s=socket(PF_INET, SOCK_STREAM, 0) возвращает 0, после чего bind (s, (struct sockaddr*) &addr, sizeof(addr)) пишет: Socket operation on non-socket что неправильно? Ссылка
на первый взгляд - норма \ приведи фрагмент определения структуры sockaddr_in addr; а лучше просто сделай так: main() { struct sockaddr_in addr; int s; s=socket(PF_INET,SOCK_STREAM,0); if (s==-1) { /* обработка ошибки */ exit (-1);} bzero(&addr,sizeof(addr)); addr.sin_family=PF_INET; addr.sin_port=htons(portnum); addr.sin_addr.s_addr=htonl(INADDR_ANY); if (bind(s,(struct sockaddr*) &addr,sizeof(addr))==-1) { /* обработка ошибки */ exit (-1);} .... listen, accept,... Bulash-OFF ★ (03.10.01 22:45:27 MSK) Показать ответ Ссылка
Ответ на: комментарий от Bulash-OFF 03.10.01 22:45:27 MSK Самое интересное, что код у меня - 1 в 1, в том числе и определение #include <sys/types.h> #include <sys/socket.h> struct sockaddr_in addr; а с bzero еще лучше - core dump (см. сообщение чуть ниже). полный глюкодром. anonymous (04.10.01 10:25:29 MSK) Ссылка
Похоже, что модуль или библиотека в ядре какая-то недоскомпилена или недоподключена -- был у меня похожий глюк. А еще см. Робачевского, "Операционная система UNIX", там азбучных истин до фига, может выловишь чего. С уважением. anonymous (09.10.01 19:20:24 MSK) Ссылка