Nanashi-soft○プログラマ専用○Windows gcc SDL○
SDLにネットワーク機能を追加する、ライブラリの1つが SDL_netです
接続するだけのシンプルな設計の為、相手のサーバと全て自力で会話しなければならないのですが、余計な事をしない分ゲームで使用するには適しています
SDL_net 1.2
http://www.libsdl.org/projects/SDL_net/
ここから、SDL_net-1.2.7.tar.gzをダウンロードします
c:\cygwin\home\ユーザ名、以下にファイルを置いて
$ tar zxf SDL_net-1.2.7.tar.gz $ cd SDL_net-1.2.7 $ ./configure $ make $ make install
で行います
・インクルードする
#include "SDL_net.h"
・初期化する(SDL_Initより後で)
SDLNet_Init
〜ここで通信する〜
・終了処理する(SDL_Quitより前で)
SDLNet_Quit();
・サーバーIP情報を生成
IPaddress ip; SDLNet_ResolveHost(&ip,「サーバーURLかIPアドレス」,「ポート番号」)
※この時点ではまだ接続していません
・ソケットを開く
TCPsocket sock= SDLNet_TCP_Open(&ip);
・メッセージを送信する
SDLNet_TCP_Send(sock,「メッセージバイト列」,「サイズ」);
・メッセージを受信する
char inmsg[256]; int reclen= SDLNet_TCP_Recv(sock, inmsg, sizeof(inmsg));
・ソケットを閉じる
SDLNet_TCP_Close(sock);
SDLNetを使用する事を明示しなければなりません
リンク時に -lSDL_netを付けます
・コマンドラインの場合
gcc -o test test.c `sdl-config --cflags --libs` -lSDL_net
・Makefile記述の場合
LIBS = `sdl-config --libs` -lSDL_net
#include "SDL.h"
#include "SDL_net.h"
int main(int argc,char *argv[]){
SDL_Init(SDL_INIT_VIDEO);
SDLNet_Init();
IPaddress ip;
SDLNet_ResolveHost(&ip, "www.google.co.jp", 80);
TCPsocket sock= SDLNet_TCP_Open(&ip);
SDLNet_TCP_Send(sock, "GET /\n", 6);
char inmsg[256];
int reclen= SDLNet_TCP_Recv(sock, inmsg, sizeof(inmsg));
SDLNet_TCP_Close(sock);
printf("%s\n", inmsg);
SDLNet_Quit();
SDL_Quit();
}