タグ

socketに関するgoy_80のブックマーク (15)

  • TCPを使う(acceptした相手の確認):Geekなぺーじ

    TCPサーバはlistenした後にクライアントからのコネクションをacceptしますが、どのクライアントからのコネクションをacceptしたかを知りたい場合があると思います。 ここでは、接続相手を確認する方法を説明したいと思います。 acceptした相手を表示するサンプル acceptの第二引数は、接続した相手に関する情報を含んでいます。 以下のサンプルは、acceptした相手のIPアドレスとポート番号を表示します。 IPアドレスの表示にはinet_ntoaを利用します。 inet_ntoaは、引数として渡したstruct in_addrを表現する文字列を返します。 #include <stdio.h> #include <winsock2.h> int main() { WSADATA wsaData; SOCKET sock0; struct sockaddr_in addr; str

  • TCP/IPネットワークプログラミング

    TCP/IPネットワークプログラミング Windows Visual C++ でTCP/IPネットワークを使うサンプルプログラムです. 「プロジェクト」→「ライブラリ」→「リンク」にあるオブジェクト/ライブラリ モジュールに ws2_32.lib を付け加えてからコンパイルして下さい. サーバープログラムとクライアントプログラムの2つを用意しています. サーバープログラムを実行してから,クライアントプログラムを実行して下さい. linux gcc 版 を探している方はこちらへどうぞ. linux のクライアントから Windows のサーバーにつなぐことも可能です. //Windows VC++ での TCP/IP サンプルプログラム(ここからサーバー) //クライアントから送られてきた文字列を大文字に変換して送り返す //サーバープログラムを実行してからクライアントプログラムを実行して下

  • ソケットの使いかた - phpspot

    fsockopen を使います。 後はファイルポインタを使用してファイルを扱うようにリモートからデータを読み込めます。 <?php // タイムアウトを30秒に設定に www.php.net の 80 番ポートに接続 // エラーがあれば $errno,$errstr に入る。 $fp = fsockopen ("www.php.net", 80, $errno, $errstr, 30); if (!$fp) { echo "接続できません<br>\n"; } else { // 読み書きのタイムアウト設定 socket_set_timeout($fp, 2); fputs ($fp, "GET / HTTP/1.0\r\nHost: www.php.net\r\n\r\n"); while (!feof($fp)) { echo fgets ($fp,128); } // ソケットがタ

  • PHP でサーバソケットプログラミング (1):Rainy Day Codings:So-net blog

    低レベルのサーバサイドソケットプログラミングってあんまり知らなかったのでちょこっと調べてまとめてみた。 対象言語: PHP5 この記事のゴール: クライアントから入力されたデータをそのまま標準出力に表示する PHP5 でソケットを使うための準備 ソケットを使うには php.ini の以下の行のコメントアウトを外す必要があります。 変更前: ;extension=php_sockets.dll 変更後: extension=php_sockets.dll この設定をしないとソケット関数を使用したときに関数が未定義であるというエラーが発生します。 PHP Fatal error: Call to undefined function socket_create() in ... ソケットを作る サーバ側ソケットを作るには socket_create_listen を使います。 $port =

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

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

  • ノンブロッキングソケット:Geekなぺーじ

    ノンブロッキングでUDPパケットの受信を待つサンプル 通常設定では、recv関数はデータが届くまでブロッキングします。 複数のソケットを扱うプログラムや、その他入力と併用するようなプログラムではブロックさせずにrecv関数を使いたい場合があります。 winsockでは、ioctlsocket関数にFIONBIOを渡すことにより、ブロッキング/ノンブロッキングの設定を行えます。 ノンブロッキング状態に設定したソケットでデータが無い時にrecvを行うとrecv関数はエラーを返します。 recv関数がエラーで返った時にWSAGetLastErrorを実行してエラー状態がWSAEWOULDBLOCKの時には、ただ単にデータが無いという事をあらわしています。 下記サンプルでは、データが無いときには「まだ来ない」と表示し、1秒間待つという処理をしています。 下記サンプルはUDPのポート12345番にデ

  • getaddrinfo(getaddrinfoを使ってsockaddrを作成する):Geekなぺーじ

    最初の例は、gethostbynameを使い慣れている人を意識したものにしてみましたが、次は、それとはちょっと違った使い方の紹介です。 socketはAF_INETやAF_INET6などのプロトコルファミリとソケットの種類を指定する必要があります。 また、connectシステムコールには、sockaddr構造体を引数として渡す必要があります。 この例では、getaddrinfoによって得られる結果をこれらのシステムコールに渡すための情報としてそのまま使ってしまいます。 サンプルコード #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> int main() { char *hostname = "localhost"; char *service = "80"; struc

  • ソケットプログラミング - 自分用メモとか

    /// C,C++での実装 SOCKET ListenSocket; struct addrinfo me; ZeroMemory(&me, sizeof(me)); // 構造体をゼロクリア me.ai_family = AF_INET; // IPv4プロトコルを指定 me.ai_socktype = SOCK_STREAM; // ソケットを作成 ListenSocket = socket(hints.ai_family, hints.ai_socktype, 0); /// C,C++での実装 // 作成したソケットと、ソケットアドレス情報 me をバイント // ホスト名から自動的にIPを設定する場合 addrinfo *res; char hostname[256]; char service[8]; unsigned short port = 10000; sprintf(s

  • ソケットの使用法

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

  • WindowsAPI Programming

    WindowsAPI Programming  第3章 〜ソケット通信〜 ここではWindowsPCどうしでデータ通信を行う方法について学びます。 目次 I.  Windows Sockets II. ストリームソケットの通信手順 1.ソケット作成 2.ソケットを閉じる 3.ソケットのバインド 4.ソケットの接続待ち 5.ソケットの受け入れ 6.サーバへの接続 7.データの送信 8.データの受信 III.非同期ソケット通信 IV.変数型名 V. 簡易チャットプログラム 0.プログラムソース 1.ソケット通信部の説明 2.エディットボックスの説明 3.インタフェースの説明 はじめに 現在WindowsやUNIX,MacOSなどでデータ通信の目的で広く使われている方式がソケット通信です。 これは互いに異なるマ

  • TCPを使う(acceptした相手の確認):Geekなぺーじ

    TCPサーバはlistenした後にクライアントからのコネクションをacceptしますが、どのクライアントからのコネクションをacceptしたかを知りたい場合があります。 ここでは、接続相手を確認する方法を説明します。 acceptした相手を表示するサンプル acceptの第二引数は、接続した相手に関する情報を含んでいます。 以下のサンプルは、acceptした相手のIPアドレスとポート番号を表示します。 IPアドレスの表示にはinet_ntoaを利用します。 inet_ntoaは、引数として渡したstruct in_addrを表現する文字列を返します。 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int main() { int sock0; struct

  • PHPマニュアル:stream_socket_server:インターネットドメインまたは Unix ドメインのサーバーソケットを作成する

  • サービス終了のお知らせ

  • phpのソケット通信 - A.Saitouのつぶやき

    WEBアプリケーションで初めてソケット通信を使うので、phpで試してみました。自作の汎用ソケットサーバと組み合わせて、下記ソースをロードし、キャラクタの入出力をチェックします。 <?php $sock = fsockopen( 'localhost', 8888, $errono, $errmsg, 30 ); $out = "This is scoket test."; //データ送信 fputs($sock, $out); //データ受信 $stemp=fread($sock, 1); $response = ""; while ( $stemp != "x") { $stemp = fread($sock, 1); $response .= $stemp; } //受信データ表示 echo($response); fclose($sock); ?> 何気にあっさり動作しました。レスポ

    phpのソケット通信 - A.Saitouのつぶやき
  • 1