![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
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 |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
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; ) |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|