Section: Linux Programmer's Manual (2) Updated: 2008-07-14 Index JM Home Page roff page 名前 send, sendto, sendmsg - ソケットへメッセージを送る 書式 #include <sys/types.h> #include <sys/socket.h> ssize_t send(int s, const void *buf, size_t len, int flags); ssize_t sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); ssize_t sendmsg(int s, const struct msghdr *msg, int
ノンブロッキングでUDPパケットの受信を待つサンプル 通常設定では、recv関数はデータが届くまでブロッキングします。 複数のソケットを扱うプログラムや、その他入力と併用するようなプログラムではブロックさせずにrecv関数を使いたい場合があります。 Linuxでは、ioctl関数にFIONBIOを渡すことにより、ブロッキング/ノンブロッキングの設定を行えます。 ノンブロッキング状態に設定したソケットでデータが無い時にrecv(もしくはread,recvfrom)を行うとrecv関数はエラーを返します。 recvがエラーを返した時のerrnoの値がEAGAINである場合には、ただ単にデータが無いという事をあらわしています。 errnoは、int errnoとして宣言されているグローバル変数です。 エラーが発生した時にエラー内容を知らせる値がセットされます。 下記サンプルでは、データが無いとき
[ ECHOサーバ 〜マルチプロセスとシグナル〜 ] 動作確認はすべて Linux + gcc で行っています。 >>[ 0x01 ] もっともシンプルなechoサーバ http://ruffnex.oc.to/kenji/src/echo.c [kenji@localhost test]$ gcc -Wall echo.c [kenji@localhost test]$ ./a.out 8080 port=8080 ready for accept ここでtelnetでこのサーバに繋いでみる。 (server) (telnet) accept:127.0.0.1:32812 | [kenji@localhost test]$ telnet localhost 8080 [client] dd | Trying 127.0.0.1... | Connected to localhost.
目次 目次 はじめに ソケットの基礎知識 特徴と用途 IPアドレスとコンピュータの名前 ポート番号 TCPとUDP ネットワークバイトオーダ ソケットの使い方 サーバがクライアントとTCP接続する手順 ソケットを得る ポート番号を指定する ソケットを接続要求の監視モードにする accept()で接続要求を受理する。 クライアントがサーバとTCP接続する手順 ソケットを得る サーバに接続する。 TCP接続後のデータの受送信 データの送信 データの受信 TCP接続の切断 UDPで通信する手順 ソケットを確保する ポート番号の指定 データの送信 データの受信 名前からIPアドレスを得る方法 IPアドレスから名前を得る方法 select()でブロッキングを回避する UNIX系OSでソケットを使う場合の注意 Windows系OSでソケットを
select によるマルチスレッドサーバ C 言語において select の使い方を説明します。 echo-server-select.c 117: int 118: main(){ 119: fd_set target_fds; 120: fd_set org_target_fds; 121: int sock_optval = 1; 122: int port = 5000; 123: /* リスニングソケットを作成 */ 124: listening_socket = socket(AF_INET, SOCK_STREAM, 0); 125: 126: /* ソケットオプション設定 */ 127: if ( setsockopt(listening_socket, SOL_SOCKET, SO_REUSEADDR, 128: &sock_optval, sizeof(sock_opt
日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く