スレを勃てるまでもな ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
564:デフォルトの名無しさん 09/01/04 01:48:51 >>560 入力してなければ読み取れないが、入力するためにsockaddr_inにしてポートやアドレスを入力するんだろ? キャストしてもメモリの内容は変わらない。 565:デフォルトの名無しさん 09/01/04 01:50:49 echoservaddr.sin_family = AF_INET; echoservaddr.sin_port = xxx; echoservaddr.sin_port = yyy; connect(sock,( struct sockaddr * ) &echoservaddr, sizeof(echoservadr)) ――connectの中 int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) { if (addr->sa_family == AF_INET) { const const struct sockaddr *addr_in = (const const struct sockaddr *)addr; だいたいこんな感じのはず。 ここでaddr_in->sin_portを読めばxxxだし、addr_in->sin_addrからはもちろんyyyが読み取れる。 566:536 09/01/04 01:58:56 >connect()に渡すときはsockaddrにキャストして >connect()の内部ではsockaddr_inとしてアドレスを読み出す。 つまり、connectに渡す情報は、空の struct sockaddr { u_short sa_family; char sa_data[14]; }; これであって、特に決まりで中に何も入力されてなくても意味はない。 で、内部でどこのアドレスに接続するか処理するのが、 struct sockaddr_in{ short sin_family; unsigned short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; この入力しておいたinの方。ってことでいいのでしょうか。 inをsockaddrにキャストしても入力しておいた値で共通する変数名とかないですもんね だからキャストしても??
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5376日前に更新/192 KB
担当:undef