Shammer's Philosophy

My private adversaria

2009-12-01から1ヶ月間の記事一覧

正規表現でIPアドレス判定ーC言語ーその4

C

正規表現でIPアドレス判定ーC言語ーその3 - Shammerismで予想した、regcomp の最後の引数を REG_NOSUB だけにする実装を試してみた。 #include <regex.h> #include <stdio.h> int main(int argc, char* args[]){ if( argc == 2 ){ regex_t preg; int regcompresult; regcompre</stdio.h></regex.h>…

正規表現でIPアドレス判定ーC言語ーその3

C

正規表現でIPアドレス判定ーC言語ーその2 - Shammerismの実装がうまく動かないので 正規表現に問題ないかを確認。正規表現初心者の自分には、頭で考えるよりも打ち込んで期待通りの 結果を返すか確認する方が早い。というわけで、以下のコードを試す。1から…

正規表現でIPアドレス判定ーC言語ーその2

C

正規表現でIPアドレス判定ーC言語ーその1 - Shammerismの続き。正規表現を使用するには、 パターンのコンパイル(regcomp) コンパイルされたパターンを使用しての比較(regexec) という順番で行われるようだ。 そして、regexec の引数、pmatch や nmatch は、…

正規表現でIPアドレス判定ーC言語ーその1

C

HTTPクライアントを書いてみようと思っていたが、引数で渡された文字がIPなのかホスト名なのかを判定できるようにしたいと思った。そして、それぞれの場合で動作を変えたい。これを可能にするには、引数がIPアドレスかどうかを判定できる必要がある。まず、I…

一番簡単なHTTPリクエスト

現在使われているHTTPのバージョンは、1.0と1.1。1.0も使われているっていっても、大半は1.1だろう。それぞれのバージョンで、リクエストやレスポンスのヘッダーや、実装すべき機能の差分がある。当然だけれども、後に決められた1.1の方が複雑で、HTTP 1.0 …

クライアントのポートを固定するーJava版ー

Java でもCと同様の方法でできるようだ。Socket作成後、connect する前に bind しておけばいい。Socket Class に使用可能なメソッドも定義されているし、やり方はCよりイメージしやすい気がする。単にJavaの方に慣れているだけか? import java.io.*; import…

クライアントのポートを固定するーC言語版ー

C

Socketアプリケーションを作成した場合、 サーバーは特定のポートにbindし、そのポートでlistenする クライアントはエフェメラルポートを使用する(ポートは意識しない) というのが通常。 しかし、何らかのテストなども目的でクライアントのポートを固定し…

getnameinfo-sample

C

getnameinfo-sample_beta - Shammerismの実装では、サービスが 0 になってしまうと思っていたが、単純なミスだった。getaddrinfo の第二引数を NULL にしていたことが原因。この点を修正してうまくいった。最終バージョンは以下。 #include <arpa/inet.h> #include <err.h> #incl</err.h></arpa/inet.h>…

getnameinfo_sample調査

C

自分の実装が期待通りに動作していないので原因を調べていたところ、以下のサイトを見つけた。 http://www.koutou-software.co.jp/junk/howto-independ-addfamilysock.html結構長いページだが、下の方にgetnameinfoのサンプル使用例とかがある。まだ詳細を見…

速読熱が冷めた理由

結局、自分の中で「速読」に対する熱は冷めていった。読書は、旅のようなものだと思う。 一つのところをさっと見て、できるだけ多くの場所に行きたいという人もいるだろうし、 多くの場所に行かなくてもいいから、行った旅行先をじっくり楽しみたい人もいる…

ブームって何?

最近、本を読む量が減った。多いときは年間100冊いくかいかないか、という程度だったが、 最近は一年に30冊読んでいるかいないか、というところだ。まあそれはさておき・・・ 本をたくさん読んでいた頃は、「速読」というものにものすごく興味があった。 そ…