![]() |
|
|
Googleのunix.com
|
|||||||
| UNIXの詳細&エキスパートのためのユーザー 専門家への専門家。先進のUNIXは、 UNIXのコマンドは、 Linux 、オペレーティングシステム、システム管理、プログラミング、シェル、シェルスクリプトは、 Solarisのは、 Linux 、 HP - UXのは、 AIXので、 OS X 、 BSDのこちらをご覧ください。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| 問題のHPのUnixでは、ソケットに書く | AshokG | HP - UX | 0 | 2005年2月25日 02:19午前 |
| ソケットプログラミングソケット | soshell | 高レベルのプログラミング | 2 | 2004年6月29日 08:49午前 |
| UNIXでプログラムがソケットをどのようにできるか? | sanjohn | 高レベルのプログラミング | 7 | 2002年6月21日 12:26午前 |
| どのようにソケットを使用するように | niuzefeng | 高レベルのプログラミング | 1 | 2001年6月30日 02:15午後 |
| ソケット | アミン | IPネットワーク | 1 | 2001年2月10日 04:45午後 |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
||||
|
Unixの:ソケット&共同
こんにちは、
私が必要とする.................交換に役立つclient.cの要求は、サーバーによって実装さserver.c ------------------ リスト1 - server.c / *インクルードデdifférentesライブラリー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 [ ] ) ( INTは解像度; / * Operandes * / buf AとB 、 INTは; / *ソケットの周囲にアンおいまわすserveur * / INTはserv_sock ; / *ソケットの周囲にアンおいまわすクライアント* / INTはcli_sock ; / *住所デラdistanteソケット* / 構造体sockaddr_in localaddr ; / *長たらしデl'住所* / socklen_tをlocaladdr_len ; / *長たらしデl'住所* / socklen_tをdistaddr_len ; localaddr_len \u003d sizeof ( localaddr ) ; / *下ごしらえデラソケット* / serv_sock \u003dソケット( AF_INET.SOCK_STREAM 、 0 ) ; もし( serv_sock \u003dソケット( AF_INET.SOCK_STREAM 、 0 ) ; ( serv_sock \u003d\u003d -1 ) ( perror ( ''デcreerラソケット'' )インポッシブル 出口( -1 ) ; ) / *下ごしらえデラ構造décrivant l'住所 *エルポートqui seront associés àラソケット* / bzero ( (文字* ) & localaddr 、 localaddr_len ) ; / * Protocoleインターネット* / localaddr.sin_family \u003d AF.INET ; / * écouteデブークレ毛糸のロケールでシュールl'住所* / localaddr.sin_addr.s_addr \u003d inet_addr ( '' 127.0.0.1 '' ) ; / * écouteでシュールルポート1234 * / localaddr.sin_port \u003d htons ( 1234 ) ; ラソケットオーポート1234シュール官/ * * l'住所ロケール127.0.0.1 * / (バインド( serv_sock 、もし (構造体sockaddr * ) & localaddr 、 localaddr_len ) \u003d\u003d -1 ) ( perror ( ''インポッシブルd' attacherラソケット'' ) ; 出口( -1 ) ; ) / *下ごしらえデl' écouteシュールラソケット* / 場合( ( serv_sock 、 1 ) \u003d\u003d -1 )試聴( perror ( '' d' écouterシュールラソケット'' )インポッシブル; 出口( -1 ) ; ) / * * accepteレentrantes接続のオン/ cli_sock ( serv_sock 、受け入れる\u003d (構造体sockaddr * ) & distaddr 、 & distaddr_len ) ; ( cli_sock \u003d\u003d -1 ) ( perror ( '' Erreurデかかわりデュクライアント'' ) ; 出口( -1 ) ; ) / * recoitラプルミエールoperande * / 解像度\u003d recvを( cli_sock 、 &buf; sizeof ( INTは) 、 0 ) ; (解像度! \u003d sizeof ( INTは) ) ( perror ( '' Donnees recues incorrectes '' ) ; 近い( serv_sock ) ; 出口( -1 ) ; ) 一\u003d ntohl ( ) buf ; printf ( '' Recu : % d個/ Ñ '' 、 1 ) ; / * recoitラドゥジュームoperande * / 解像度\u003d recvを( cli_sock 、 & buf 、 sizeof ( ) 、 0 ) ; (解像度! \u003d sizeof ( INTは) ) ( perror ( '' Donnees recues incorrectes '' ) ; 近い( serv_sock ) ; 出口( -1 ) ; ) b \u003d ntohl ( buf ) ; printf ( '' Recu : % d個の\ Ñ '' 、イ) ; buf \u003d htonl (ア+イ) ; printf ( ''別れの言葉: % d個の\ Ñ '' 、 1 + 2 ) ; / * * envoieルによるオン/ 解像度( cli_sock 、 & buf 、 sizeof ( INTは) 、 0 )を送信する\u003d ; (解像度! \u003d sizeof ( INTは) ) ( perror ( '' Erreurデ伝送デdonnees '' ) ; 近い( serv_sock ) ; 出口( -1 ) ) 近い( serv_sock ) ; 近い( cli_sock ) ; リターン( ) ; ) ----------------- リスト2 - client.c / /インクルードデdifférentesライブラリー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 [ ] ) ( INTは解像度; / * Operandes * / buf AとB 、 INTは; / *ソケットの周囲にアンコートserveur * / INTはserv_sock ; / *ソケットの周囲にアンコートクライアント* / INTはcli_sock ; / *住所デラdistanteソケット* / 構造体sockaddr_in distaddr ; / *長たらしデl'住所* / socklen_tをdistaddr_len ; distaddr_len \u003d sizeof ( distaddr ) ; 一\u003d htonl ( 123 ) ; b \u003d btonl ( 124 ) ; / *創作デラソケット* / cli.sock \u003d ............................. ( cli_sock \u003d\u003d -1 ) ( perror ( ''デcreerラソケット'' )インポッシブル; 出口( -1 ) ; ) / *下ごしらえデラ構造decrivant *住所エl'ルポートqui seront associes *アラソケット* / bzero ( (文字* ) & distaddr 、 distaddr_len ) ; / * Protocoleインターネット* / distaddr.sin_family \u003d ....................... / *登録connecteシュールロケール* l'住所デブークレ毛糸のオン/ distaddr.sin_addr.s_addr \u003d inet_addr ( '' 127.0.0.1 " ) ; / *登録connecteシュールルポート1234 * / distaddr.sin.port \u003d ............................. / *コネクションオーserveur * / serv_sock \u003d .................................... ( serv_sock \u003d\u003d -1 ) ( perror ( ''インポッシブルデ登録connecter '' ) ; ) / *別れの言葉ラプレミアoperande * / 解像度\u003d ..................................... (解像度! \u003d sizeof ( INTは) ) ( perror ( ''インポッシブルd' envoyerレdonnees '' ) ; 近い( cli_sock ) ; 出口( -1 ) ; ) / * envoieラseconde operande * / 解像度( cli_sock 、 &送る\u003d bの、 sizeof ( INTは) 、 0 ) ; (解像度! \u003d sizeof ( INTは) ) ( perror ( ''インポッシブルd' envoyerレdonnees '' ) ; 近い( cli_sock ) ; 出口( -1 ) ; ) / * * recupereルによるオン/ 解像度\u003d .................................... (解像度! \u003d sizeof ( INTは) ) ( perror ( ''インポッシブルデリラレdonnees '' ) ; 近い( cli_sock ) ; 出口( -1 ) ; ) printf ( ''による: % d個の\ Ñ '' 、 ntohl ( buf ) ) ; ............................. 近い( serv_sock ) ; 戻り0 ; ) |