program

perl 用の IDE

eclipse + epic もいいらしい。

Affrus 1.0

Perl で使えるIDE。 http://www.latenightsw.com/affrus/

pcre

Perl Compatibirity な正規表現ライブラリ。 Perl と同じなの?それとも、Perlに似ている別のライブラリなの? w3m 入れたら依存関係でインストールされたのでメモ。

Routine to take an Internet address and convert into a "dotted quad" representation for printing.

NetBSD のコード。3秒もかからず理解できる。分かりやすい。こういうコードをソラで書き続けるようになりたいものだ。 const char * in_fmtaddr(addr) struct in_addr addr; { static char buf[sizeof("123.456.789.123")]; addr.s_addr = ntohl(addr.s_addr…

教訓

プログラムの初期時にコーディングでの大まかな見取り図を作ること。 ポリシーがないとメンテナンス姓低下(ex. 二つのパケットのデコードがうまくできない。原因はパケットの差分ではなく、まったく別の所) グローバル変数使わない 当初は1つで良かった物で…

@IT:Groovyに触ってみよう

Java プラットフォームで動く、インタプリタ言語。 http://www.atmarkit.co.jp/fjava/rensai3/devworks05/devworks05_4.html

Programming Tutorial Sites

http://www.daniweb.com/techtalkforums/thread10509.html

Welcome to MASAPICO'S Page

Win32 プログラムのサンプル数が豊富。 Win32 サンプル集 関数別 Win32 サンプル集 http://nienie.com/~masapico/sample_index.htmlCtrl + Alt + Delete を無効化する方法もある。 http://members.tripod.com/~masapico/doc_DisableSAS.html

VC超入門

http://munch.c.u-tokyo.ac.jp/vc/

union: gcc と Visual C++ の違い

struct udppkt_fmt_t { u_char type; #if defined(WIN32) union { struct udppkt_type_request_t upd_request; struct udppkt_type_data_t upd_data; }; #elif defined(__linux__) || defined(__FreeBSD__) union { struct udppkt_type_request_t upd_reques…

マクロ/関数を駆使して可読性を高める

移植性の高いプログラムを作る際、マクロを使って複数の環境を同一視すると良い。...と分かって書いてたつもりでもわかってなかった。反省。 具体的な例としては、ネットワークを使うプログラムを Windows と Linux で動作させたい場合、Windows では WinSoc…

Windows Script

Windows 上での定型処理の自動化に。 http://www.microsoft.com/japan/msdn/scripting/default.asp

IPv6 の UDP ソケットで、クライアントが select() できない

次のプログラムは IPv4 ではクライアントがパケットを受信することができるが、 IPv6 ではパケットを受信することができない。私のせいなのか、 Windows のせいなのか、それとも IPv6 のせいなのか。判断できない。どこにポストすればいいんだろう? #includ…

小さな UDP パケットを大量に送ると send がエラー。errno に ENOBUFS 。

FreeBSD の場合、 UDP のペイロードが 1000bytes のパケットを大量に送信すると、 ENOBUFS が返ることがある。usleep(1000) して、成功するまで send すれば送信できる。が、ペイロードが 16bytes のパケットを大量に送信すると、usleep(1000) しても一向に…

バイト終了

UDP パケットによるスループット測定器。 IPv4, IPv6 にサポートすること。 Windows, Linux, FreeBSD 上で動作すること。が完成した。 IPv6 上で動くかどうかの試験はまだである。環境が手元に無い。バイト先で行う。IPsec SGW の裏っかわから送信してみよう…

Visual Studio 6.0 Service Pack 6

/.-jp より。 http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/VS6SP6.asp

recv(fd, buf, sizeof(BUFFER_MAX), 0);

自分のソースコードで見つけた。一人で笑ってしまったではないか。激しくバグ*1。 *1:sizeof(BUFFER_MAX)ではなく、 BUFFER_MAX または sizeof(buf) にすれば良い。

Windows Sockets Error Codes

エラーコードのリスト。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/windows_sockets_error_codes_2.asp

マルチスレッドプログラミング (POSIX、Win32)

以前、日記に登録したと思うのだが。抜けていたようなので再登録。 http://www.ops.dti.ne.jp/~allergy/thread/thread.html

Windows でプロセスIDを得るには?

GetCurrentProcessId(void) を使う。

マルチスレッドプログラミング (POSIX、Win32)

http://www.ops.dti.ne.jp/~allergy/thread/thread.html

VC++ 6.0 に SOCKADDR_STORAGE は存在しない SOCKADDR_STORAGE を使うには Windows SDK を別途入れる。

表題のとおり。ドキュメントには存在しても VC++ 6.0 Enterprise には、ない。使えない。 sockaddr_in6 の使用を検討することにする。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/sockaddr_storage_2.aspSDK update…

socket() の第3引数について

type に対応する protocol が1つである場合、引数 protocol の値を 0 にすることができる。しかし、これをしてはならない。開発環境とは別のプラットホームでも1つである保証がないからだ。汎用性の無いプログラムになってしまう。

IPv6 Guide for Windows Sockets Applications

Checkv4.exe というツールについての説明もある。 Microsoft provides a utility called Checkv4.exe that helps you find potentially porting-sensitive code in your application code, and also makes recommendations for fixes.このツールは便利だ。例…