|
はじめまして、いつもHP見さしていただいてます 感謝 winsockを(c言語で)使ってチャットのプログラムを書いてみようと思ったんですけれど、マルチスレッドタイプのサーバーでクライアントにsend()する時(多分IPマルチキャストっ奴を使うと思うんですけど)のやり方について何か情報お持ちでないでしょうか? 接続されたクライアント全てに同報送信できるようにしたいんですけれど、よろしくお願いします。 後、勝手にHPにリンク張ってしまったんですけどよろしかったでしょうか? まずいようだったら連絡下さい |
|
マルチキャストするなら、TCP じゃなくて UDP になると思いますが、 そこらへんの基礎知識はありますか? あと、IPv4 ではマルチキャストは optional なんですが、大抵の OS には実装されてるのかしら? で、僕も興味はありますが、そこらへんはまだ自分のものにしていないので、 説明できないです。 http://X68000.startshop.co.jp/~68user/net/link-book.html の 「UNIX ネットワークプログラミング第2版 Vol.1」 にとっても詳しく書いてありますので、よかったら買ってみて下さい。 # 今説明しようとすると、この本の丸写しになってしまいますので。 > \r\n\r\n が1回で読める保証はなくて、 ここらへんのことについても、この本に詳しく書かれています。 要は1バイトずつ読めばいいんですが、毎回 read しては遅くなるので 先にバッファに読み込んだり、read しているときにシグナルが飛んできた 場合の EINTR などなど。 8000円出すだけで、5万円分くらいの知識が得られます。おすすめ。 > 勝手にHPにリンク張ってしまったんですけどよろしかったでしょうか? どうぞ〜。 |
|
>> $sendとか、適当な変数に全部繋げて代入し、 >> print SOCKET $send; としなければならない >ということはあり得ない 確かにそうでした…$sendに全部代入するのと HTTPバージョンを色々変えるのを同時に試してて混乱してたみたいです(汗) というわけで、やっぱり繋げる必要はありませんでした。ハイ。 また、HTTPバージョン省略も0.9扱いになっているようでした。 でも省略すると0.9にされるというのはちょっと驚き。 これはサーバ側でそう設定している為ですよね…?という事は… 今時0.9なんて使わないし…1.0や1.1をデフォルト設定にしているサーバもあるんでしょうか? |
|
HTTP のバージョン省略時は 0.9 であると RFC で決まっています。 http://X68000.startshop.co.jp/~68user/net/rfc.html というより、「省略したもののみを 0.9 とみなす」と言った方が正しいかな。 GET /index.html HTTP/0.9 というリクエストはできないようなので。 |
|
返事ありがとうございます。 マルチキャストについてですが winsock1,1ではoption扱いで正式サポートではなく 2,0ではサポートされてるようなんですが、いい情報がまだ得られていません。 もうちょっと調べて、うまくいったら報告します。 (今windowsでやってるんで68userさんはあまり興味ないかもしれませんが) |
|
はじめまして。 「ネットワークプログラミングの基礎知識」読ませていただきました。 HTTPの初心者のため、大変勉強になりました。 この度proxyサーバを使って、URLを取ってくるシステムを開発しているのですが、うまく動作しません。 GETのレスポンスで、ヘッダでは「200 OK」が返ってきているのに、ヘッダしか取出せません。どんな原因が考えられるでしょうか。 環境は以下の通りです。 proxyサーバ:NetscapeProxyServer 取出すURLのあるサーバ:Apache 1.3.9 |