Программирование сокетов Linux LOCAL DGRAM ⇐ Linux
Программирование сокетов Linux LOCAL DGRAM
Я переписываю пример из части 57.3 из книги «Интерфейс программирования Linux» следующим образом:
//1-server.c #include "unb.h" интервал основной () { Интер СФД, номер; структура sockaddr_un саддр, каддр; носоклен_т лен; char buf[BUFFSIZE]; sfd = сокет (AF_LOCAL, SOCK_DGRAM, 0); memset(&saddr, 0, sizeof(saddr)); saddr.sun_family = AF_UNIX; strcpy(saddr.sun_path, SV_SOCK_PATH); отсоединить (saddr.sun_path); привязать (sfd, (struct sockaddr *)&saddr, sizeof(saddr)); для (;;) { len = sizeof (struct sockaddr_un); nr = Recvfrom (sfd, buf, BUFFSIZE, 0, (struct sockaddr *)&caddr, &len); printf ("Сервер получил %d байт от %s\n", nr, caddr.sun_path); sendto(sfd, buf, nr, 0, (struct sockaddr *)&caddr, len); } выход (0); } Проблема в том, что caddr.sun_path всегда возвращает NULL!
Я переписываю пример из части 57.3 из книги «Интерфейс программирования Linux» следующим образом:
//1-server.c #include "unb.h" интервал основной () { Интер СФД, номер; структура sockaddr_un саддр, каддр; носоклен_т лен; char buf[BUFFSIZE]; sfd = сокет (AF_LOCAL, SOCK_DGRAM, 0); memset(&saddr, 0, sizeof(saddr)); saddr.sun_family = AF_UNIX; strcpy(saddr.sun_path, SV_SOCK_PATH); отсоединить (saddr.sun_path); привязать (sfd, (struct sockaddr *)&saddr, sizeof(saddr)); для (;;) { len = sizeof (struct sockaddr_un); nr = Recvfrom (sfd, buf, BUFFSIZE, 0, (struct sockaddr *)&caddr, &len); printf ("Сервер получил %d байт от %s\n", nr, caddr.sun_path); sendto(sfd, buf, nr, 0, (struct sockaddr *)&caddr, len); } выход (0); } Проблема в том, что caddr.sun_path всегда возвращает NULL!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему Cin.getline(); завершить мое соединение с розеткой? (сеть) (программирование сокетов)
Anonymous » » в форуме C++ - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-