реклама на сайте
подробности

 
 
> взаиомодействие процессов через UNIX сокеты
romez777
сообщение Jul 19 2005, 10:01
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



В целях изучения (периодически поглядывая в книгу Стивенса) сделал простой сервер и клиент, чтобы они общались через unix-sockets.

Сервер стартует успешно, файл сокета создается, а клиент ругается. Вот код клиента:

Код
// на этот сокет забиндин сервер
#define SOCK_FILE "/tmp/ddns.sock"

int main(void)
{
 int sd;    /* socket descriptor */
 int saddrlen, caddrlen;
 struct sockaddr_un serv_addr, cli_addr;
 ....

 memset(&serv_addr, 0, sizeof serv_addr);
 serv_addr.sun_family = AF_UNIX;
 strcpy(serv_addr.sun_path, SOCK_FILE);
 saddrlen = sizeof serv_addr.sun_family + strlen(serv_addr.sun_path);

 /* create UNIX socket */
 if ( (sd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0 ) {
    perror("socket() error!");
    exit(EXIT_FAILURE);
 }

 memset(&cli_addr, 0, sizeof cli_addr);
 cli_addr.sun_family = AF_UNIX;
 strcpy(cli_addr.sun_path, "/tmp/cli.XXXXXX");
 mkstemp(cli_addr.sun_path);
 caddrlen = sizeof cli_addr.sun_family + strlen(cli_addr.sun_path);

 if ( bind(sd, (struct sockaddr *)&cli_addr, caddrlen) < 0 ) {
    perror("bind() error");
    exit(EXIT_FAILURE);
 }

 //  здесь возникает ошибка - bind() error: Address already in use
 return 0;
}


Что не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
v_mirgorodsky
сообщение Jul 19 2005, 11:06
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Klient dolzhen vizivat' connect(), a ne bind().


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
romez777
сообщение Jul 20 2005, 00:40
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Цитата(v_mirgorodsky @ Jul 19 2005, 14:06)
Klient dolzhen vizivat' connect(), a ne bind().
*


я использую unix datagram сокеты.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 20:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016