なでしこでもプラグインのnakonet.dllを使うとネットワーク通信
できますが、もうちょっとソケットを意識した関数を作ります。
------ここから------
・ソケットオープン
書式:ソケットオープン([int]タイプ)
戻値:[int]ハンドル
説明:タイプを指定してソケットを作成(オープンする)。
タイプには以下の何れかを指定する。
0 : TCP
1 : UDP
成功した場合には0以上のハンドル値が返される。失敗
した場合には-1が返される。
・ソケット接続待ち
書式:ソケット接続待ち([int]ハンドル、[int]ポート)
戻値:[int]結果
説明:ソケットオープンで取得済のハンドルと、指定のポートを
使って、TCPで相手が接続してくるのを待つ。
成功した場合は0が、失敗した場合は-1が返される。成功
した場合、後述の「相手IPアドレス取得」命令を使用
して、接続相手のアドレスを取得することが出来る。
・ソケット接続
書式:ソケット接続([int]ハンドル、[str]相手のアドレス、[int]ポート)
戻値:[int]結果
説明:ソケットオープンで取得済のハンドルと、サーバ側のアドレス、
ポートを指定してTCPで接続する。
接続が成功した場合には0が、失敗した場合には-1が返される。
・TCP送信
書式:TCP送信([int]ハンドル、[int]バッファ、[int]サイズ)
戻値:[int]サイズ
説明:ソケットオープンで取得済のハンドル、且つこのソケットで
相手に接続している場合に、バッファで指定されるハンドル
のデータをサイズ分送信する。バッファはバッファ確保で
取得したハンドルを指定すること。
成功した場合には送信出来たサイズが返される。失敗した
場合には-1が返される。
・TCP受信
書式:TCP受信([int]ハンドル、[int]バッファ)
戻値:[int]サイズ
説明:ソケットオープンで取得済のハンドル、且つこのソケットで
相手に接続している場合に、バッファで指定されるハンドル
にデータを受信する。
成功した場合には受信出来たサイズが返される。失敗した
場合には-1が返される。
・UDP送信
書式:UDP送信([int]ハンドル、[int]バッファ、[str]相手アドレス、[str]ポート)
戻値:[int]サイズ
説明:ソケットオープンで取得済のハンドルと、送信対象のバッファ
のハンドル、及び相手アドレスとポートを指定してデータを
送信する。ソケットハンドルはUDPでオープンされていること。
成功した場合には送信サイズが返さえる。失敗した場合には
-1が返される。
・UDP受信
書式:UDP送信([int]ハンドル、[int]バッファ、[str]ポート)
戻値:[int]サイズ
説明:ソケットオープンで取得済のハンドルと、受信データ書きこみ
用のバッファハンドル、及びポートを指定してデータを受信
する。なお、ポートが設定されるのは最初の1回だけど、それ
以降は無視される。
成功した場合には受信出来たサイズが返される。失敗した
場合には-1が返される。
・相手IPアドレス取得
書式:相手IPアドレス取得(#引数なし)
戻値:[str]相手IPアドレス(文字列)
説明:TCP通信で接続した相手のアドレス、及びUDP通信で受信した
場合の相手のIPアドレスを文字列で返す。DLL内部では
1箇所でしか記憶していないので、複数ソケットを開いている
場合等は、最後に接続/受信させれたものが記憶される。
------ここまで------
普通ネットワーク系のプログラムは受信用にスレッド使うのが
一般的ですが、今回は関数だけ用意してスレッドには対応して
ません。なのでちょっと使いにくいかも…。UDPでちょっと送受信
するぐらいなら使えますかね。