プログラミング(programming)/socklib
[
Front page
] [
New
|
List of pages
|
Search
|
Recent changes
|
Help
] [
Japanese
/
English
]
Research
research overview
papers
media
Members
professors
graduates
undergraduates
alumni
Links
Links
Classes
Computer Programming Basic II
Special Lecture of Mechanical Intelligent System Engineering I
Start:
[[プログラミング(programming)]]
このページは基本的にライブラリ本体付属のREADMEと同じ内容...
ソケット通信用簡易ライブラリsocklibの使い方
(ソケット通信の仕組みについては自習してね)
#contents
*socklibとは [#je0274ea]
-ソケット通信の簡易ライブラリ
-サーバに接続する関数,シングル・マルチクライアントサーバ...
-自作プログラムで他のPCと接続したり,同じマシン内の他のプ...
-一応c++からでも使えるように作ったつもり
*socklibのチェックアウト,インストール [#e8304986]
-/home/svn/prog/socklibをチェックアウトする.
svn co svn+ssh://mizuuchi.lab.tuat.ac.jp:/home/svn/prog/...
-socklib本体のmakeは,ディレクトリsocklibでmakeコマンドを...
cd socklib
make
sudo make install
-サンプルプログラムのmakeは,ディレクトリsocklib/samples...
cd samples
make
-実行時に文句を言われたらexport LD_LIBRARY_PATH=${LD_LIBR...
-シングルクライアント・サーバサンプルの実行方法(1回起動す...
./server
(別窓を開く)
./client
*socklibの使い方 [#n70c928f]
-サンプルを見よ
-ヘッダーファイル socklib.h をincludeする
**chat [#t7bae047]
./chatserver 自分のIPアドレス
別窓or別PCで
./chatclient チャットサーバのIPアドレス
*関数の説明 [#x109c2ba]
-すべての関数の頭にslib_がつく.
-int slib_connectToServer( int portnum , const char *ip_a...
--サーバに接続要求を出す関数(クライアント用)
--portnum:接続先のポート番号
--ip_addr:接続先のIPアドレス
--返り値:通信に使うソケット番号もしくはエラーコード
--備考:返り値が0より大きい場合は接続成功,返り値が-1の場...
-int slib_connectFromClientSingle( int portnum , const ch...
--クライアントからの接続要求を待つ関数(サーバ用,ただし1...
--portnum:自分のポート番号
--ip_addr:自分のIPアドレス
--返り値:通信に使うソケット番号もしくはエラーコード
--備考:返り値が0より大きい場合は接続成功,返り値が-1の場...
-pthread_t *slib_multiClientServer( int portnum , const c...
--クライアントからの接続要求を待つ関数(サーバ用,複数ク...
--portnum:自分のポート番号
--ip_addr:自分のIPアドレス
--max_clientnum:接続を受け付けるクライアント数
--void *(*func)( void* ):クライアントと実際にデータの送受...
--返り値:複数クライアントの並列処理に用いるスレッド配列
-int slib_sendString( int sock , char *send_message );
--文字列を送信する関数(サーバ,クライアント共通)
--sock:通信に使うソケット
--send_message:送信する文字列
--返り値:送信したデータ数
-int slib_recvString( int sock , char *recv_message , int...
--文字列を受信する関数
--sock:通信に使うソケット
--recv_message:受信した文字列を格納する配列
--buffer_size:受信バッファのサイズ
--返り値:受信したデータ数
-int slib_sendNumber( int sock , double num , int type );
--数値を送信する関数
--sock:通信に使うソケット
--num:送信する数値
--type:送信する数値の型
---SLIB_INT:整数
---SLIB_FLOAT:単精度浮動小数
---SLIB_DOUBLE:倍精度浮動小数
--返り値:送信したデータ数
-int slib_recvNumber( int sock , void *num , int type );
--数値を受信する関数(正確には,受信した文字列を数値に変...
--sock:通信に使うソケット
--num:受信した数値を格納するポインタ
--type:送信する数値の型(slib_sendNumberと同様)
--返り値:受信したデータ数
-int slib_sendSExpression( int sock , const char *format ...
--S式としてデータを送信する関数.
--sock:通信に使うソケット.
--format以降:printfとかと使い方は同じ.
--ただし,使用できるフォーマット指定子は%d,%f,%lf,%c,...
--返り値:送信したデータ数
--バグ:
---S式をslib_recvStringで受信して,それをslib_sendSExpres...
---スペース区切り以外だとちょっとね...
-char **slib_sendExpression( int sock , int *command_num );
--受信したS式を要素ごとに分割する関数
--sock:通信に使うソケット.
--command_num:送信されたS式の要素数
--返り値:要素ごとに分割された2次元配列
--注意:返り値の2次元配列は,使い終わったらslib_freeCharTw...
--バグ:リストが入れ子になっている場合には対応しきれない.
*コメント [#j3da5872]
#comment
End:
[[プログラミング(programming)]]
このページは基本的にライブラリ本体付属のREADMEと同じ内容...
ソケット通信用簡易ライブラリsocklibの使い方
(ソケット通信の仕組みについては自習してね)
#contents
*socklibとは [#je0274ea]
-ソケット通信の簡易ライブラリ
-サーバに接続する関数,シングル・マルチクライアントサーバ...
-自作プログラムで他のPCと接続したり,同じマシン内の他のプ...
-一応c++からでも使えるように作ったつもり
*socklibのチェックアウト,インストール [#e8304986]
-/home/svn/prog/socklibをチェックアウトする.
svn co svn+ssh://mizuuchi.lab.tuat.ac.jp:/home/svn/prog/...
-socklib本体のmakeは,ディレクトリsocklibでmakeコマンドを...
cd socklib
make
sudo make install
-サンプルプログラムのmakeは,ディレクトリsocklib/samples...
cd samples
make
-実行時に文句を言われたらexport LD_LIBRARY_PATH=${LD_LIBR...
-シングルクライアント・サーバサンプルの実行方法(1回起動す...
./server
(別窓を開く)
./client
*socklibの使い方 [#n70c928f]
-サンプルを見よ
-ヘッダーファイル socklib.h をincludeする
**chat [#t7bae047]
./chatserver 自分のIPアドレス
別窓or別PCで
./chatclient チャットサーバのIPアドレス
*関数の説明 [#x109c2ba]
-すべての関数の頭にslib_がつく.
-int slib_connectToServer( int portnum , const char *ip_a...
--サーバに接続要求を出す関数(クライアント用)
--portnum:接続先のポート番号
--ip_addr:接続先のIPアドレス
--返り値:通信に使うソケット番号もしくはエラーコード
--備考:返り値が0より大きい場合は接続成功,返り値が-1の場...
-int slib_connectFromClientSingle( int portnum , const ch...
--クライアントからの接続要求を待つ関数(サーバ用,ただし1...
--portnum:自分のポート番号
--ip_addr:自分のIPアドレス
--返り値:通信に使うソケット番号もしくはエラーコード
--備考:返り値が0より大きい場合は接続成功,返り値が-1の場...
-pthread_t *slib_multiClientServer( int portnum , const c...
--クライアントからの接続要求を待つ関数(サーバ用,複数ク...
--portnum:自分のポート番号
--ip_addr:自分のIPアドレス
--max_clientnum:接続を受け付けるクライアント数
--void *(*func)( void* ):クライアントと実際にデータの送受...
--返り値:複数クライアントの並列処理に用いるスレッド配列
-int slib_sendString( int sock , char *send_message );
--文字列を送信する関数(サーバ,クライアント共通)
--sock:通信に使うソケット
--send_message:送信する文字列
--返り値:送信したデータ数
-int slib_recvString( int sock , char *recv_message , int...
--文字列を受信する関数
--sock:通信に使うソケット
--recv_message:受信した文字列を格納する配列
--buffer_size:受信バッファのサイズ
--返り値:受信したデータ数
-int slib_sendNumber( int sock , double num , int type );
--数値を送信する関数
--sock:通信に使うソケット
--num:送信する数値
--type:送信する数値の型
---SLIB_INT:整数
---SLIB_FLOAT:単精度浮動小数
---SLIB_DOUBLE:倍精度浮動小数
--返り値:送信したデータ数
-int slib_recvNumber( int sock , void *num , int type );
--数値を受信する関数(正確には,受信した文字列を数値に変...
--sock:通信に使うソケット
--num:受信した数値を格納するポインタ
--type:送信する数値の型(slib_sendNumberと同様)
--返り値:受信したデータ数
-int slib_sendSExpression( int sock , const char *format ...
--S式としてデータを送信する関数.
--sock:通信に使うソケット.
--format以降:printfとかと使い方は同じ.
--ただし,使用できるフォーマット指定子は%d,%f,%lf,%c,...
--返り値:送信したデータ数
--バグ:
---S式をslib_recvStringで受信して,それをslib_sendSExpres...
---スペース区切り以外だとちょっとね...
-char **slib_sendExpression( int sock , int *command_num );
--受信したS式を要素ごとに分割する関数
--sock:通信に使うソケット.
--command_num:送信されたS式の要素数
--返り値:要素ごとに分割された2次元配列
--注意:返り値の2次元配列は,使い終わったらslib_freeCharTw...
--バグ:リストが入れ子になっている場合には対応しきれない.
*コメント [#j3da5872]
#comment
Page: