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(); }