タグ

Cとsocketに関するtreby006のブックマーク (10)

  • ソケット (BSD) - Wikipedia

    ソケット(英: socket)とは、BSD系UNIXを起源とするAPIであり、C言語によるアプリケーション開発でのプロセス間通信、特にコンピュータネットワークに関するライブラリを構成する。その起源を強調してBSDソケット、バークレーソケットなどとも呼ばれる。 ソケットはネットワーク内の通信エンドポイント(communication endpoint、通信端点[1][2])を識別して接続するための概念およびメカニズムである[3][4][5]。ソケットとエンドポイントは関連の強い概念であるため、同一視されることもある[6][7]が、一般的に「ソケット」と言えば抽象化された通信の概念やAPIを包含するものであり、厳密には別物である。 1983年にリリースされたUNIXオペレーティングシステム (OS) 4.2BSD で初めて API として実装された。ネットワークの抽象化インタフェースとしてのデ

  • クライアントプログラム

    (1)のソケット生成ではsocket()システムコールを使ってソケットを 生成しますが、その引数にはソケットの種別を指定します。これにはソケットが TCP用であるのか、UDP用であるのかなどが含まれます。そして、ソケットの生 成が成功したときは、socket()はその生成したソケットの識別子を 返します。 ただし、socket()はソケットを作るだけであり、この段階では、サー バ側コンピュータと通信接続は行われていません。そこで、(2)の connect()システムコールを使って、(1)で生成したソケットをサー バ側プログラムのソケットと通信接続を行います。このとき、 connect()の引数には、ソケット識別子の他に、接続先となるサーバ 側コンピュータ(正しくはネットワークインターフェース)のIPアドレスとポー ト番号などの情報を与えます。 通信接続完了後は、(3)のread()システム

  • 第1回 IPv6ソケットプログラミング [C++] | Netsphere Laboratories

    (2006.8.5 ページを独立。) C/C++でのIPv6ソケットプログラミングについて。 ソケットについてはすでに掃いて捨てるほど解説サイトがあるが、IPv6に対応した、しかもポータブルな書き方を紹介しているところは見当たらなかった。 目次: サーバを作る クライアントを作る IPv6, IPv4を区別するサーバ @ サーバを作る まず、ソケットでIPv4あるいはIPv6クライアントからの接続を受け付けるプログラムを作ってみる。Fedora Core 5 Linuxで試した。 IPv4 onlyのときの典型的なコードは、次のようになる。※現代ではこのように書いてはいけません。 /** * TCP で listen する. IPv4 only. 実コードで使用不可! * * @param node bind() するホスト名. NULL の場合 INADDR_ANY. * @param

  • 構造体とIPアドレスの操作

    3.1 構造体とIPアドレスの操作 ここでは、これから学ぶシステムコールを使う上で必要となる構造体と、IPアドレスを格納するための関数についての説明を行います。中には構造が複雑なものもあるので、しっかりと理解したうえで使用してください。 sockaddr構造体 sockaddr構造体は、ソケットプログラミングを行なう上で基となる構造体です。しかしながらこの構造体は、ソケットで様々な通信を実現するための雛形であり、実際にそのまま使う機会はありません。 <構造> FreeBSDの場合、sockaddr構造体のメンバは以下のようになります。なお、Linuxの場合はsa_lenがなく、代わりにsa_familyが16bitのサイズになります。 #include <netinet/in.h> struct  sockaddr {         u_char             sa

  • Internet Programming - API仕様

    WSAStartup関数 WinSockの初期化を行う。 [宣言] int WSAStartup( WORD wVersionRequested , LPWSADATA lpWSAData ); [引数] wVersionRequested - 要求するWinSockのバージョン lpWSAData - WinSockの詳細情報 [戻り値] 成功時は、0 を返す。 失敗時は、0 以外の値を返す。 socket関数 ソケット(Soket Descriptor)を作成する関数。 [宣言] SOCKET socket ( int af , int type , int protocol ); [引数] af - アドレスファミリ(通常は、AF_INET) type - ソケットの種類 SOCK_STREAM : TCPで使用する SOCK_DGRAM : UDPで使用する protocol -

  • listen

    接続を受け入れます、 ソケットは、最初に socket 関数で作成されて、bind 関数でローカルアドレスに密接に結びつきます、 入ってくる接続用の backlog はlisten と共に指定されます、 そして、それから、接続は accept 関数で受け入れられます。 接続志向であるソケット、 たとえばタイプ SOCK_STREAM のそれら、 listen と共に使用されます。 ソケット s は、入ってくる接続要求が認められて、プロセスによって待ち行列に受け入れられると、 パッシブモードとして置かれます。 listen 関数は、同時に複数の接続要求を出来るサーバにより典型的に用いられます。 もし接続要求が届き、そして、キューが一杯であるならば、 クライアントは WSAECONNREFUSED の指示と共にエラーを受け取るでしょう。 もしソケット記述子が利用可能ではないならば、listen

  • ソケットの使用法

    ソケットの概要 ソケットとはアプリケーションをインターネットに接続するための機構です。 インターネット通信をサポートするサーバーやクライアントには必ずソケットが必要になります。 以下では、ソケットの実際的な使い方を、 サーバーを作成する場合とクライアントを作成する場合とに分けて解説します。 なお、ここで説明する内容は、開発環境がWindowsであることを想定しています。 Unixでソケットを使いたい場合は別の文献を参照してください。 また、ソケットを使う際に注意するべきことがあるので、「注意!」にまとめました。 プログラミングの際には必ず一読してください。 サーバーの作成法(TCP) ここではTCP通信をベースとしたサーバーの構成法について解説します。 図1にサーバー作成での基的な操作の流れを示しました。 この章では初期設定に必要なsocket, bind, li

  • ソケットプログラミング

    ソケットプログラミング 1. 定義 ソケット: Socket。TCP/IP アプリケーションを作成するための抽象化されたインターフェース。 2. ソケットの使用例 インターネット電話やインターネット放送を含むすべての TCP/IP アプリケーション。 3. ソケット関数 まずは sockaddr_in 構造体に適切なパラメータ設定を行い、以下のソケット関数を実行する。

  • socket関数とプロトコル

    まずsocket関数とプロトコルとアドレスについて記述しておく. socket関数 ドメインとタイプとプロトコル アドレスの表現 よく使うSocket 同一マシンのプロセス間だけでなく,別マシンのプロセスとも通信したりするには,Socketを使用する.で,そのためにsocketシステムコールを使用する. int socket(int domain, int type, int protocol); この関数の呼び出しが成功するとソケットへのディスクリプタを返す.これはファイルディスクリプタと同様に扱える.引数にprotocolというのがある.これを見ると,TCP/IPだのUDPだのを指定するのかと思うのは私だけだろうか.実際はちょっと違う.例えばTCP/IPで通信したければ,socketを以下のように呼び出す. socket_df = socket(AF_INET, SOCK_STREAM

  • [C言語]Socket間通信 echoサーバを作る « イイ!! プログラミング Blog

    ネットワークを通して、データをやりとりするためには、Socketに対して、読み書きをします。 C言語による、Socket間通信は、下記のような手順になります。 socket() によりソケットを開く bind() により、コネクションを受けつけるIPアドレス・ポート番号と ソケットとを対応づける listen() によりクライアントからの接続待ち受け状態にする accept() によりクライアントからの接続を受け付ける read(), write(), send(), recv() などを用いて通信を行う close() によりソケットを閉じる 実際に文字列を単純にクライアントに返すだけのプログラム(echoサーバ)を書いて見ます。 ちなみに、コードでは、1回やりとりが終わると、サーバプロセスも終了します。 #include <stdio.h> #include <stdlib.h> /

  • 1