プログラミング/C_C++/socketstream
それっぽく動いてるので公開します.
iostreamっぽくsocketが扱えます.
#include "socketstream.h" #include <iostream> #include <string> using namespace std; int main(int argc, char**argv) { cout << "byte_order:"<<BYTE_ORDER<<endl; socketlistener ltn(10000); socketstream socks(ltn.accept()); if(socks.fail()) { cerr << "accept error" << endl; return 1; // error } string buf; int d=0; while(!socks.fail()) { socks >> d >> buf; if(socks.fail()) break; cout << d << ":" << buf << endl; cin >> buf; d++; socks << d << buf; } socks.close(); return 0; }
こんな感じに使えます.整数型はバイトオーダをネットワークバイトオーダに変換して送ります.
1日位で終わらせて,これを作るはずだったのに,4日もかかってしまった.
3月は残り1日.
いくつか勉強になった気がするので良い事にする.
filebufに手を出したせいで,えらく苦労した.
filebufを捨てたら,半日で完成・・・.アンダーバーから始まる関数とかが少し嫌いになった.
VCのlibc++のソースは難読化を計ってるに違いない.
gccは素晴らしい.
gccってclass ios_baseどこで定義してるんだ・・・?
bits/の中にあった.なんだこれは.