From: zak@ocean.ie.u-ryukyu.ac.jp (satoshi zakimi)
Real-Date: Thu, 6 Oct 94 22:50:46 JST
Subject: [infotalk,02136] Re: Q: HTTP between Client & Server.
Message-Id: <9410061350.AA29373@coral>


座喜味@琉大 ほとんど一人芝居 です。

指導教官の新城先生の指摘により、今まで引っかかっていた箇所は
だいたいクリア出来ました。
フォローして下さった皆さん、ありがとうございました。

原因は、クライアントとサーバを中継する箇所、read(),write()の
引数が原因でした。
   nbyte=read(server_s,mes,1024);
   write(client_s,mes,strlen(mes)+1);
となっていた(ちょっと違うけど)参考のソースの write の部分を
   write(s,mes,nbyte);
と変更するだけで画像、その他すべてうまくいきました。

━━━━━━━━━━━━━━━━……‥‥・・・ ・  ・   ・
琉球大学 電子情報工学科4年次  喜屋武・名嘉村研究室
    座喜味 聡     E-Mail     zak@ocean.ie.u-ryukyu.ac.jp
                  NiftyServe   hga02675@niftyserve.or.jp
・   ・  ・ ・・・‥‥……━━━━━━━━━━━━━━━━


From: zak@ocean.ie.u-ryukyu.ac.jp (satoshi zakimi)
Real-Date: Thu, 6 Oct 94 21:28:02 JST
Subject: [infotalk,02135] Re: Q: HTTP between Client & Server.
Message-Id: <9410061228.AA28085@coral>


座喜味@琉大 微速前進中 です。

<9410061205.AA19749@alpha234.aist-nara.ac.jp>の記事において
k-chinen@is.aist-nara.ac.jpさんは書きました。

>> むむ。あの libwww を読むのですか ?
>> Mosaic はデータアクセスには libwww を、表示には HTML widget という構成
>> です。libwww は手元にある CERN httpd pre 6 で 2 万行近くあります。
>> 頑張って下さい。

むむ。やめます。中間発表まで一月しかないし。

>> 
>> 今回話題の範囲なら
>> 
>> 	ftp://shika.aist-nara.ac.jp/chinen/httpd/wcol.940806.tar.gz
>> 
>> のコードを読んでいただければ雰囲気がつかめると思います。
>> # 細かいバグは残っているかも知れないので注意して下さいね :-)

よろこんで参考にさせていただきます。

前の記事の件ですが、HTTPヘッダを Mosaic に渡さずに捨てて、残りだけ
送るとちゃんと文字だけは表示できました。テキスト以外は全然駄目です
けど。ま、素人の手探り的な、下手な鉄砲数打ちゃ当たる方式ですね。こ
れは...。

━━━━━━━━━━━━━━━━……‥‥・・・ ・  ・   ・
琉球大学 電子情報工学科4年次  喜屋武・名嘉村研究室
    座喜味 聡     E-Mail     zak@ocean.ie.u-ryukyu.ac.jp
                  NiftyServe   hga02675@niftyserve.or.jp
・   ・  ・ ・・・‥‥……━━━━━━━━━━━━━━━━


From: zak@ocean.ie.u-ryukyu.ac.jp (satoshi zakimi)
Real-Date: Thu, 6 Oct 94 19:34:34 JST
Subject: [infotalk,02134] Re: Q: HTTP between Client & Server.
Message-Id: <9410061034.AA12695@bottom.ie.u-ryukyu.ac.jp>


座喜味@琉大 一歩前進 です。

<kayVj.ysato@etl.go.jp>の記事において
ysato@etl.go.jpさんは書きました。

>> 佐藤@電総研、やっつけプログラマです。
>> 
>> socketなどからのreadの場合、要求したバイト数が満たされずにreadが
>> 終了することがある(というか、そのほうが普通)ですが、そのことで
>> はないでしょうか?

そうです。今は全部読み終るまで while で繰り返し読んでます。

そして、今はこの client - server 間を(ひたすら)中継する部分をやって
いますが、どうも client(Mosaic, chimera) で表示してくれないという問題
にぶつかってます。client にデータがすべて届いているのは確かなんですが、
まだ何か足りないのかなぁ?

>> [以下余談] Mosaic2.1では最初にreadできたブロック(たぶんTCP/IPの
>> パケット単位)の中にContent-Lengthフィールドが無いと、それを認識
>> してくれない。その結果、Read xxx of yyy bytes of data のメッセー

これがヒントになりそうかな......。


>> #その時Mosaicのソースを覗いて目がテンになったまま戻らない:-p

#修行のために Mosaic のソースを覗いてみようかな。

━━━━━━━━━━━━━━━━……‥‥・・・ ・  ・   ・
琉球大学 電子情報工学科4年次  喜屋武・名嘉村研究室
    座喜味 聡     E-Mail     zak@ocean.ie.u-ryukyu.ac.jp
・   ・  ・ ・・・‥‥……━━━━━━━━━━━━━━━━


From: ysato@etl.go.jp (Yutaka Sato 佐藤豊)
Real-Date: Thu, 6 Oct 94 19:06:34 JST
Subject: [infotalk,02133] Re: Q: HTTP between Client & Server.
Message-Id: <kayVj.ysato@etl.go.jp>


On 10/06/94(18:32) zak@ocean.ie.u-ryukyu.ac.jp (satoshi zakimi) wrote
in <9410060931.AA12604@bottom.ie.u-ryukyu.ac.jp> (aist.mail-lists.infotalk:969/etlss2):
 |座喜味@自己フォロー です。
 |
 |<9410060618.AA21664@bay.ie.u-ryukyu.ac.jp.ie.u-ryukyu.ac.jp>の記事において
 |zak@ocean.ie.u-ryukyu.ac.jpさんは書きました。
 |
 |>> 座喜味@琉球大学  プログラミング万年初心者です。
 |>> 
 |>> という感じで送られてくると思っていたんですが。
 |>> まだこの後に手続きが必要なんでしょうか?

佐藤@電総研、やっつけプログラマです。

 |分かりました。もう一度 read するだけでした。
 |HTTPのヘッダを読んだ後にもう一度読まなければいけないわけですね。
 |たわいもない事でした。

socketなどからのreadの場合、要求したバイト数が満たされずにreadが
終了することがある(というか、そのほうが普通)ですが、そのことで
はないでしょうか?

[以下余談] Mosaic2.1では最初にreadできたブロック(たぶんTCP/IPの
パケット単位)の中にContent-Lengthフィールドが無いと、それを認識
してくれない。その結果、Read xxx of yyy bytes of data のメッセー
ジのof yyy の部分が表示されない、という症状がありました。それで、
DeleGateではHTTPのヘッダを全部中継し終えるまではfputsの結果を
flushしないというように変更した記憶があります。
#その時Mosaicのソースを覗いて目がテンになったまま戻らない:-p

     //\^^    @ @   佐藤 豊 / Yutaka Sato <ysato@etl.go.jp>
   / 876m\   ( - )  通商産業省 工業技術院 電子技術総合研究所
  ETL,AIST,MITI _<   >_ 情報アーキテクチャ部 情報ベース研究室
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


From: zak@ocean.ie.u-ryukyu.ac.jp (satoshi zakimi)
Real-Date: Thu, 6 Oct 94 18:31:37 JST
Subject: [infotalk,02132] Re: Q: HTTP between Client & Server.
Message-Id: <9410060931.AA12604@bottom.ie.u-ryukyu.ac.jp>


座喜味@自己フォロー です。

<9410060618.AA21664@bay.ie.u-ryukyu.ac.jp.ie.u-ryukyu.ac.jp>の記事において
zak@ocean.ie.u-ryukyu.ac.jpさんは書きました。

>> 座喜味@琉球大学  プログラミング万年初心者です。
>> 
>> という感じで送られてくると思っていたんですが。
>> まだこの後に手続きが必要なんでしょうか?
>> 

分かりました。もう一度 read するだけでした。
HTTPのヘッダを読んだ後にもう一度読まなければいけないわけですね。
たわいもない事でした。

お騒がせしました。

━━━━━━━━━━━━━━━━……‥‥・・・ ・  ・   ・
琉球大学 電子情報工学科4年次  喜屋武・名嘉村研究室
    座喜味 聡     E-Mail     zak@ocean.ie.u-ryukyu.ac.jp
                  NiftyServe   hga02675@niftyserve.or.jp
・   ・  ・ ・・・‥‥……━━━━━━━━━━━━━━━━


From: zak@ocean.ie.u-ryukyu.ac.jp (satoshi zakimi)
Real-Date: Thu, 6 Oct 94 16:09:24 JST
Subject: [infotalk,02131] Re: Q: HTTP between Client & Server.
Message-Id: <9410060709.AA12475@bottom.ie.u-ryukyu.ac.jp>


座喜味@琉大 です。

<9410060650.AA12936@notos.is.kochi-u.ac.jp>の記事において
tkikuchi@is.kochi-u.ac.jpさんは書きました。

>> 菊地@高知大 プログラミング億年初心者です。
>> 
>> もう一回 CR を送るとどうなりますか?
>> 

プログラムソースは実際には "GET / HTTP/1.0\r\n" という文字列を
送っています。
サーバのほうを -v オプションを付けてモニターしてみたんですが、
Mosaic などでアクセスした場合となんら変わらない反応をしてます。

━━━━━━━━━━━━━━━━……‥‥・・・ ・  ・   ・
琉球大学 電子情報工学科4年次  喜屋武・名嘉村研究室
    座喜味 聡     E-Mail     zak@ocean.ie.u-ryukyu.ac.jp
                  NiftyServe   hga02675@niftyserve.or.jp
・   ・  ・ ・・・‥‥……━━━━━━━━━━━━━━━━


From: Tokio Kikuchi <tkikuchi@is.kochi-u.ac.jp>
Real-Date: Thu, 6 Oct 94 15:50:31 JST
Subject: [infotalk,02130] Re: Q: HTTP between Client & Server.
Message-Id: <9410060650.AA12936@notos.is.kochi-u.ac.jp>


菊地@高知大 プログラミング億年初心者です。

> を参考にして、httpd server に
> 
> GET / HTTP/1.0
> 
> を送信してHTMLテキストを読むだけのクライアントを作ってみたんですが、
> 実際に戻ってきたのは
> 
....後略

もう一回 CR を送るとどうなりますか?

---------------------------------------------------
 <a href="http://www.is.kochi-u.ac.jp/staff/tkikuchi/profile.html">
 菊地時夫                 tkikuchi@is.kochi-u.ac.jp
 高知大学理学部情報科学科 Tel:0888-44-8336(direct)
 780 高知市曙町2-5-1      Fax:0888-44-8361/8346 </a>
---------------------------------------------------


From: zak@ocean.ie.u-ryukyu.ac.jp (satoshi zakimi)
Real-Date: Thu, 6 Oct 94 15:18:57 +0900
Subject: [infotalk,02129] Q: HTTP between Client & Server.
Message-Id: <9410060618.AA21664@bay.ie.u-ryukyu.ac.jp.ie.u-ryukyu.ac.jp>


座喜味@琉球大学  プログラミング万年初心者です。

今度、delegate みたいなものを作ろうと思い、その雛型を作ってみたんですが、
うまくいかなかったのでこちらの先輩型に質問させていただきます。

高田さんの書かれた
<a href="http://www.ntt.jp/people/takada/docs/www-intro/#sec-http>
WWWのレポート</a>
を参考にして、httpd server に

GET / HTTP/1.0

を送信してHTMLテキストを読むだけのクライアントを作ってみたんですが、
実際に戻ってきたのは

HTTP/1.0 200 Document follows
MIME-Version: 1.0
Server: CERN/3.0pre6
Date: Thursday, 06-Oct-94 05:53:01 GMT
Content-Type: text/html
Content-Length: 859
Last-Modified: Wednesday, 28-Sep-94 17:50:11 GMT


だけでした。
期待していたのはこれに続いて

<HEAD>
<TITLE>University of Ryukyus WWW Home Page.</TITLE>
</HEAD>
....以下略

という感じで送られてくると思っていたんですが。
まだこの後に手続きが必要なんでしょうか?

なにせプログラミング万年初心者なもんで、socket の使い方もよく分からずに
コーディングしただけです。
本来は Client <--> Filter <--> WWW Server と流れるHTMLにフィルターをかけ
るのが目的です。

━━━━━━━━━━━━━━━━……‥‥・・・ ・  ・   ・
琉球大学 電子情報工学科4年次  喜屋武・名嘉村研究室
    座喜味 聡     E-Mail     zak@ocean.ie.u-ryukyu.ac.jp
                  NiftyServe   hga02675@niftyserve.or.jp
・   ・  ・ ・・・‥‥……━━━━━━━━━━━━━━━━