うぃんそっく
とりあえずメモ
ws32.libはリンクすること
ソケット生成の前にWSAStartup関数を呼ぶ。winsockのバージョンについてはまた調べる。とりあえず適当に入れてみた(MAKEWORD(2,0)でもMAKEWORD(1,1)でも動いた)
ソケット生成はsocket関数ではなく、WSASocket関数を呼ぶ。下のリンク参照
http://d.hatena.ne.jp/winebarrel/20080315/p2
コネクションまではとりあえずUNIXと同じかも。
recvとsendは微妙に使いにくいので、fdopenを使う。windowsの場合は_open_osfhandle(sock, O_RDWR|O_BINARY)で新しいデスクリプタをもらってから、fdopen(fd, "rb+");すれば大丈夫そう。とりあえずBCCでは動いた。UNIXの方は機会があったら確認する。
http://msdn.microsoft.com/ja-jp/library/bdts1c9x(VS.80).aspx
さっき作ったFILE*を用いてfprintfでsendの代わりをする。
fprintf(fp, "GET %s HTTP/1.1\r\n", PATH);
fprintf(fp, "Host: %s:80\r\n", HOST);
fprintf(fp, "\r\n");
とりあえず、HTTPでデータ取ることにする。三行目のキャリッジなんとかと改行は超重要!これがないとサーバが返事をしてくれない。ただのしかばねのようになる。
リクエスト送ったらfgetsで取り込む。recvよりも使いやすい。改行で終わるし。
closesocket関数とWSACleanup関数は呼ぶこと。取得したFILE*のfcloseもしておく必要があるかもね。
windowsの場合はUNIXと互換性があるように見えて結構違ってるので、常に注意すること!
とりあえずリンク
http://research.nii.ac.jp/~ichiro/syspro98/connect.html
いっぺんソケットつないだら、つなぎっぱのほうがいいんだろうか。あとで調べよう。っつーか眠いのでねる。
ws32.libはリンクすること
ソケット生成の前にWSAStartup関数を呼ぶ。winsockのバージョンについてはまた調べる。とりあえず適当に入れてみた(MAKEWORD(2,0)でもMAKEWORD(1,1)でも動いた)
ソケット生成はsocket関数ではなく、WSASocket関数を呼ぶ。下のリンク参照
http://d.hatena.ne.jp/winebarrel/20080315/p2
コネクションまではとりあえずUNIXと同じかも。
recvとsendは微妙に使いにくいので、fdopenを使う。windowsの場合は_open_osfhandle(sock, O_RDWR|O_BINARY)で新しいデスクリプタをもらってから、fdopen(fd, "rb+");すれば大丈夫そう。とりあえずBCCでは動いた。UNIXの方は機会があったら確認する。
http://msdn.microsoft.com/ja-jp/library/bdts1c9x(VS.80).aspx
さっき作ったFILE*を用いてfprintfでsendの代わりをする。
fprintf(fp, "GET %s HTTP/1.1\r\n", PATH);
fprintf(fp, "Host: %s:80\r\n", HOST);
fprintf(fp, "\r\n");
とりあえず、HTTPでデータ取ることにする。三行目のキャリッジなんとかと改行は超重要!これがないとサーバが返事をしてくれない。ただのしかばねのようになる。
リクエスト送ったらfgetsで取り込む。recvよりも使いやすい。改行で終わるし。
closesocket関数とWSACleanup関数は呼ぶこと。取得したFILE*のfcloseもしておく必要があるかもね。
windowsの場合はUNIXと互換性があるように見えて結構違ってるので、常に注意すること!
とりあえずリンク
http://research.nii.ac.jp/~ichiro/syspro98/connect.html
いっぺんソケットつないだら、つなぎっぱのほうがいいんだろうか。あとで調べよう。っつーか眠いのでねる。