タグ

Cに関するtreby006のブックマーク (16)

  • ソケット (BSD) - Wikipedia

    ヘッダファイル[編集] BSDソケットにはいくつかのヘッダファイルがある。 <sys/socket.h> BSDソケットの中核となる関数とデータ構造 <netinet/in.h> AF_INET と AF_INET6 アドレスファミリ。インターネット上で広く使われ、IPアドレスとTCP/UDPのポート番号が含まれる。 <sys/un.h> AF_UNIX アドレスファミリ。同一コンピュータ上で動作するプログラム間のローカルな通信に使用。ネットワーク上では使われない。 <arpa/inet.h> 数値としてIPアドレスを操作する機能の定義 <netdb.h> プロトコル名とホスト名を数値アドレスに変換する機能の定義。ローカルなデータやDNSを検索する。 TCP[編集] TCP はコネクションの概念を提供する。TCPソケットを生成するには socket() 関数で AF_INET または AF

  • MySQL :: MySQL 4.1 リファレンスマニュアル :: 11.1 MySQL C API

    C API コードは、MySQL とともに配布されています。C API コードは mysqlclient ライブラリに格納され、C プログラムはこのコードを使用してデータベースにアクセスできます。 MySQL のソースディストリビューションに含まれるクライアントの多くは C で記述されています。C API の使用方法がわかるようなコード例を探している場合は、これらのクライアントを参考にしてください。クライアントは、MySQL ソースディストリビューションの clients ディレクトリに格納されています。 他のクライアント API(Connector/J を除くすべての API)の多くは、mysqlclient ライブラリを使用して MySQL サーバと通信します。このライブラリを使用すると、たとえば環境変数を参照できるので、他のクライアントプログラムとほとんどの環境変数を共用できることに

  • C言語でMySQLを操作する (iPLUSONE Blog)

    MySQLを利用する場合、WEBのシステム構築となると フロントエンドPHPrubyといったスクリプトで記述することが多いと思います。 今日は、C言語からMySQLを操作するAPIを利用してみたいと思います。 私の環境はFedora7で、すでにmysqlのC APIがインストール済みなので ヘッダファイルとライブラリファイルが以下のようにそろっています。 [root@fedora7 c]# ls /usr/include/mysql/ chardefs.h my_config_i386.h my_semaphore.h mysqld_error.h sslopt-case.h errmsg.h my_dbug.h my_sys.h raid.h sslopt-longopts.h history.h my_dir.h my_xml.h readline.h sslopt-vars.h

  • 個人的基準によるMySQLリファレンス - 6.(3)C言語によるMySQLの使用

    6.(3) C言語によるMySQLの使用 a.関係ファイルのパスを確認する。 findでファイルを探す。 位置はOSによって異なる。  ※プロンプトは使用環境により異なる。 % find / -name mysql.h[Enter] /usr/local/include/mysql/mysql.h % find / -name libmysqlclient.so[Enter] /usr/local/lib/mysql/libmysqlclient.so % find / -name libmysqlclient.a[Enter] /usr/local/lib/mysql/libmysqlclient.a b.コンパイル時の指定 Cプログラムソース(下の例ではmysqlclient.c)コンパイル時にライブラリパス等を指定する。 # gcc -c -I /usr/local

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

    (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

  • スレッドの生成

    まずはスレッドを生成してみる. pthread_create サンプル pthread_createスレッドを生成するには,pthread_create関数を呼び出す. #include <pthread.h> int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg); 各引数は以下のようになっている. thread pthread_create呼び出しによって設定される,同関数の出力項目である. pthread_create呼び出し元から生成したスレッドに対して何か処理をする際のスレッド識別情報である. attr 生成するスレッドに付加する属性である. スレッド属性のリストはpthread_attr_initのmanpageに記述され

  • コンピューター:C言語講座:マルチスレッドについて

    コンピューター:C言語講座:マルチスレッドについて マルチスレッドの特徴 一般的なサーバプログラムでは、多数のクライアントからの処理をできるだけリアルタイムに処理するために、何らかの形で並列処理を行うことが多いものです。たとえば、データベースサーバで、ある検索処理に時間がかかっている間ほかのクライアントが接続すらできない、という状態ではサーバとして失格でしょう。 並列処理を実現する方法としては、 ・プログラム自体を並列処理可能に記述する ・プロセスをもともと多数起動しておく ・fork()を使って子プロセスを起動するマルチプロセス処理 ・マルチスレッドを使用する などが考えられます。プログラム自体をリアルタイム性を考慮しながら記述するのはなかなか大変で、しかもソースが複雑になりメンテナンス性も問題が多くなりがちです。プロセスをもともと多数起動するのは簡単ですが、クライアントがどのプロセスに

  • c/c++で MySQL を使う方法 - pyopyopyo - Linuxとかプログラミングの覚え書き -

    c/c++mysql のデータベースへアクセスする方法をまとめます。 rubyphpと比べるとc/c++でのコーディングはかなり面倒ですが、うまく記述できればパフォーマンスがかなり向上できるようです。 参考URL http://dev.mysql.com/doc/refman/5.5/en/c.html c/c++sqliteを使う方法 - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き - DBへの接続 #include <mysql.h> MYSQL mysql; mysql = mysql_init(NULL); if (NULL==mysql) { // 初期化失敗 } const char *hostname = NULL; const char *username = "user"; const char *password = "pass"; const

    c/c++で MySQL を使う方法 - pyopyopyo - Linuxとかプログラミングの覚え書き -
  • [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