SCENE RESEARCH STATION  
with my everyday
thinking-and-doctrine

*2002.12.03

tech::SHOUTcastのプロトコルについて

基本的にはHTTPと変わらない.
まず初めにクライアントがサーバに接続要求をする.

CLIENT to SERVER:
GET $path HTTP/1.0\r\n
Host: $hostname\r\n
User-Agent: $agentname\r\n
Accept: */*\r\n
Icy-MetaData:1\r\n
# メタデータ受信に対応するなら要る
\r\n

その後サーバの反応は2通りある.
HTTPヘッダを返す場合と,ICYヘッダを返す場合である.

SERVER to CLIENT:(HTTPヘッダの場合)
HTTP/$majorver.$minorver $retcode\r\n
$retcodeについてはHTTP準拠なのでここを参照.
302以外の場合,きっとICYサーバではなく単なるHTTPサーバなので,エラー.
302なら続いて次の行が送られてコネクションが切られるはず.
Location:$location\r\n
他のサーバを使ってくれというリダイレクトの指示なので,クライアントは同じヘッダを示されたサーバに投げてやり直す.

SERVER to CLIENT:(ICYヘッダの場合)
ICY $retcode\r\n
$retcode==200ならOK.それ以外ならエラー.
ICY以降は改行のみの行がくるまでヘッダが続く.
主に次のようなヘッダが存在する.
icy-name:$icy_name\r\n
icy-url:$icy_url\r\n
icy-metaint:$icy_metaint\r\n
icy-br:$icy_br\r\n
icy-genre:$icy_genre\r\n
x-audiocast-udpport:$icy_udpport\r\n
重要なのはメタ情報の配信間隔の$icy_metaintとビットレートを示す$icy_br.
$icy_udpportが来たらTCPじゃなくてUDPによる配信になる(?).今のところ対応する必要はないと思う.
(FreeAmpは実装してなかった)

このICYヘッダが終わるとひたすらmp3データが垂れ流される.
試しにperl等でICYサーバにGETを投げて,送られてきたデータをwinampに突っ込めば音が鳴るので確認してみると良い(但しメタデータを含むと正しくデコードできないので注意).

朝起きたら青画面でマシンが停止していた.
よくあることなので,気にも留めずに学校へ.

で,数学2(2年生の講義)を受けたわけだが相変わらず難しすぎる.
ラプラス変換やフーリエ変換なのだが,演習問題が難しすぎやしませんか.
これは明らかに不必要に難しい.どう考えてもこんな数学のテクニックを競うような問題を解かされても工学に役立つとは思えない.工学ってのはなあ,数学を使う学問なんだよ.数学のための数学をやるところじゃないんだよ.けど実は役に立つのかもしれないけどね,なんだかんだいって数学のテクニックが必要となる場合は多いし.まあ,しかしとにかくやる気がおきないのだ.なにせ3年くらい前に一応高専でその単位は取ってるわけで,同じことを二度やれといわれるとまるでやる気がおきない.ああ,めんどくさい.
以上レポートを出していない言い訳.

で,夕方ごろ家帰って,眠いなあ,と思って目を瞑って起きたら午前二時.
とりあえずレポートをやろう.その前になんか食べよう.で,食べたらまずネットをしようと思ったら,恐ろしいことにXPも2000も2000serverも起動しなくなってる.必ず起動中に青画面.これは呪われているとしか思えない.どうやっても途中で青画面.ただ青画面で警告されるメッセージが毎回違う.もしかしてメモリかー!?と思って古いほうの128MB DIMMを外してみたら動いた.

この前チャリンコが壊れて,最近は健康のために歩いて駅まで行っているのですが,今度は128MBでXPを動かせ,と.
こういう場合「健康のため」という自己暗示も掛けれない,というよりむしろ不健康なわけでメモリ買ってくるしかないですね.
自転車よりメモリの方が大事ですし.ほんとかな?
てことで明日は久しぶりに大須に行こう.
以上愚痴.

あーはん.
今128MB DIMMってこんなに安いのね.そりゃ半導体産業も儲からんわな.
買うとなると256か512で少し悩むけど,贅沢は敵なので256にしよっと.

oldlog 99-00 00-01 01 01-02 02
newlog 2002 2003 2004 2005 2006 2007
category scene | 2ch | 麻雀

Copyright (C) 2003-2004 mitsuman(mnishibe at ertl.jp) All Rights Reserved.

750k+