The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

Go Back   В UNIX и Linux Форумы > Топ форумы > UNIX перспективных И опытных пользователей
.
Google unix.com



UNIX перспективных И опытных пользователей Эксперт-на-экспертов. Узнайте современные UNIX, UNIX команды, Linux, операционные системы, системы управления, программирование, Shell, Shell скриптов, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Проблема в HP-Unix, написав в розетку AshokG HP-UX 0 02-25-2005 02:19 AM
Socket Программирование розетка soshell Программирования высокого уровня 2 06-29-2004 07:49 AM
Как я могу программу сокета в Unix? sanjohn Программирования высокого уровня 7 06-20-2002 11:26 PM
Как использовать сокет niuzefeng Программирования высокого уровня 1 06-30-2001 01:15 PM
розетка Амин Сеть IP 1 02-10-2001 04:45 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 05-20-2008
bounkolh bounkolh is offline
Зарегистрированный пользователь
  
 

Регистрация: Май 2008
Сообщений: 1
Unix: сокет И Ко

Здравствуйте,
Мне нужна помощь для замены ................. client.c о том, что запрос на сервер осуществляется server.c

------------------
Листинг 1 - server.c

/ * Включение DES различными librairies nécessaires * /
# включить <stdio.h>
# включить <stdlib.h>
# включить <unistd.h>
# включить <string.h>

# включить <sys/types.h>
# включить <sys/socket.h>
# включить <netinet.in.h>
# включить <arpa.inet.h>

INT основных (INT argc, символ * argv [])
(
Res INT;
/ * Operandes * /
INT A, B, BUF;
/ * Сокету стражей в месте Кот serveur * /
INT serv_sock;
/ * Сокету стражей в месте Кот клиента *
INT cli_sock;
/ * Адрес сокета-де-ла-distante * /
структуры sockaddr_in localaddr;
/ * Longueur DE L'Adresse * /
socklen_t localaddr_len;
/ * Longueur DE L'Adresse * /
socklen_t distaddr_len;
localaddr_len \u003d sizeof (localaddr);

/ * Mise EN место де-ла-сокет * /
serv_sock \u003d розетка (AF_INET.SOCK_STREAM, 0);
если (serv_sock \u003d розетка (AF_INET.SOCK_STREAM, 0);
если (serv_sock \u003d\u003d -1) (
perror (''Невозможные де ла creer розетка'')
выход (-1);
)
/ * Mise EN место де-ла-структуры décrivant L'Adresse
* ET LE порт которая seront Ассосье à-ла-сокет * /
bzero ((символ *) И localaddr, localaddr_len);
/ * Протокол интернета *
localaddr.sin_family \u003d AF.INET;
/ * На Ecoute Sur L'Adresse де boucle локали * /
localaddr.sin_addr.s_addr \u003d inet_addr (127.0.0.1'''');
/ * На Ecoute-СЮР-ЛЕ-порт 1234 * /
localaddr.sin_port \u003d htons (1234);

/ * О-ла-атташе разъема АС порт 1234 сюр
* L'Adresse локаль 127.0.0.1 *
если (BIND (serv_sock,
(структуры sockaddr *) И localaddr,
localaddr_len) \u003d\u003d -1) (
perror (''Невозможные d'attacher ла розетка'');
выход (-1);
)
/ * Mise EN PLACE DE L'Ecoute сюр-ла-сокет * /
если (прослушивание (serv_sock, 1) \u003d\u003d -1) (
perror (''Невозможные écouter d'сюр-ла-розетка'');
выход (-1);
)
/ * На accepte ле Знакомства entrantes * /
cli_sock \u003d получать (serv_sock,
(структуры sockaddr *) И distaddr,
И distaddr_len);
если (cli_sock \u003d\u003d -1) (
perror (''Erreur дю-де-соединение клиента'');
выход (-1);
)
/ * На recoit первой operande * /
Res \u003d Recv (cli_sock, &buf; sizeof (INT), 0);
если (Res! \u003d sizeof (INT)) (
perror (''Données recues incorrectes'');
CLOSE (serv_sock);
выход (-1);
)
A \u003d ntohl (BUF);
printf (''Recu:% D / N'', а);

/ * На recoit LA DEUXIEME operande * /
Res \u003d Recv (cli_sock, И BUF, sizeof (в), 0);
если (Res! \u003d sizeof (INT)) (
perror (''Données recues incorrectes'');
CLOSE (serv_sock);
выход (-1);
)
B \u003d ntohl (BUF);
printf (''Recu:% D \ N'', б);

BUF htonl \u003d (A + B);
printf (''Envoi:% D \''N, A + B);
/ * На envoie LE результата * /
Res \u003d отправить (cli_sock, И BUF, sizeof (INT), 0);
если (Res! \u003d sizeof (INT)) (
perror (''Erreur де передачи данных'');
CLOSE (serv_sock);
выезда (-1)
)
CLOSE (serv_sock);
CLOSE (cli_sock);
возвращение ();
)
-----------------
Листинг 2 - client.c

/ / Включение DES различными librairies necessaires
# включить <stdio.h>
# включить <stdlib.h>
# включить <unistd.h>
# включить <string.h>

# включить <sys/types.h>
# включить <sys/socket.h>

# включить <netinet/in.h>
# включить <arpa/inet.h>

INT основных (INT argc, символ * argv [])
(
Res INT;
/ * Operandes * /
INT A, B, BUF;
/ * Сокету стражей в месте Кот serveur * /
INT serv_sock;
/ * Сокету стражей в месте Кот клиента *
INT cli_sock;
/ * Адрес сокета-де-ла-distante * /
структуры sockaddr_in distaddr;
/ * Longueur DE L'Adresse * /
socklen_t distaddr_len;
distaddr_len \u003d sizeof (distaddr);

A \u003d htonl (123);
B \u003d btonl (124);

/ * Создание де-ла-сокет * /
cli.sock \u003d .............................
если (cli_sock \u003d\u003d -1) (
perror (''Невозможные де ла creer розетка'');
выход (-1);
)
/ * Mise EN место де-ла-структуры decrivant
* L'Adresse ET LE порт которая seront Ассосье
* A LA сокета * /
bzero ((символ *) И distaddr, distaddr_len);
/ * Протокол интернета *
distaddr.sin_family \u003d .......................
/ * На SE connecte Sur L'Adresse де boucle локали * /
distaddr.sin_addr.s_addr \u003d inet_addr (''127.0.0.1 ");
/ * На SE connecte-СЮР-ЛЕ-порт 1234 * /
distaddr.sin.port \u003d .............................
/ * Connexion АС serveur * /
serv_sock \u003d ....................................
если (serv_sock \u003d\u003d -1) (
perror (''Невозможное-де-SE connecter'');
)
/ * На envoi ла премьера operande * /
Res \u003d .....................................
если (Res! \u003d sizeof (INT)) (
perror (''Невозможные d'envoyer ЛЕЗ данных'');
CLOSE (cli_sock);
выход (-1);
)

/ * На envoie второй operande * /
Res \u003d отправить (cli_sock, И B, sizeof (INT), 0);
если (Res! \u003d sizeof (INT)) (
perror (''Невозможные d'envoyer ЛЕЗ данных'');
CLOSE (cli_sock);
выход (-1);
)
/ * На recupere LE результата * /
Res \u003d ....................................
если (Res! \u003d sizeof (INT)) (
perror (''Невозможные де ле лир данных'');
CLOSE (cli_sock);
выход (-1);
)
printf (''Результат:% D \ N'', ntohl (BUF));
.............................
CLOSE (serv_sock);
возврат 0;
)
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 06:01 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0