DevkitProで使われているdswifiについて(3)
今日は遅いので、少しだけ書きます。
ndsでwifiを使うイメージがわくように、起動から接続、終了までを簡単に書いておきます。
wifiを動作させる
wifiのスイッチを入れるような感じです。この状態でLEDが短い点灯時間で点滅します。
Wifi_EnableWifi(); ですね。
ただ、Wifi_InitDefault()内ではスイッチオンまでやってしまいます。ので、直ぐにwifiを使いたくない場合は、スイッチオフしなければなりません。
アクセスポイント(AP)との接続
wifiのアクセスポイントとの接続です。先ず、APと繋げないとLANに繋がりません。
「Wi-Fiコネクション設定」が設定されていれば、Wifi_AutoConnect(); で行けます。
これで、IPアドレス取得やgateway、DNS設定も終わっているはずです。この状態でLEDが長い点灯時間で点滅します。
TCPソケットの生成
ファイルで言うとオープンみたいなものです。
int my_socket = socket( AF_INET, SOCK_STREAM, 0 );socket( AF_INET, SOCK_STREAM, 0 );
こんなイメージ・・・。
コネクションを張る
あるサーバのあるポートに対してコネクションを張ります。
connect( my_socket,(struct sockaddr *)&sain, sizeof(sain) );
こんなイメージ・・・。
通信する
データを送信したり、データを受信したりします。
send( my_socket, toptext, strlen(toptext), 0 );
int recvd_len = recv( my_socket, incoming_buffer, 32768, 0 );
こんなイメージ・・・。
コネクションを切る
サーバとの接続を切ります。
shutdown(my_socket,0);
こんなイメージ・・・。
TCPソケットを閉じる
開いたソケットを閉じます。
closesocket(my_socket);
こんなイメージ・・・。
実際、シャットダウンからクローズのタイミングが微妙です。シャットダウンできたかどうかがわからないので、適当な間を空けてやる必要があります。
アクセスポイント(AP)から切断する
APとの接続を切ります。
Wifi_DisconnectAP(); ですね。
この状態でLEDが短い点灯時間で点滅します。
再度wifiを使う場合
再度使いたい場合は、
Wifi_EnableWifi();
Wifi_AutoConnect();
としてやれば、LEDが長い点灯時間で点滅し始め、通信させることができるようになります。
とりあえず、もう寝ます。
本当にやりたいことリスト
(ブログの終わりにやりたいことを書いておきたいと思います)
- 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
- Androidプログラム
- Web系のプログラム