ネットワークプログラミング相談室 Port17

このエントリーをはてなブックマークに追加
911デフォルトの名無しさん:2006/09/30(土) 18:10:52
>>909
そしてまた嘘言うな
javaは含まれてねーですよ

>>910
つ 一応VC7行こうでもネイティブを吐けるので、もしかしたら吐き出したEXE動くかもしれない
が、開発環境は無理だな
そして質問は開発環境っぽいので>>910が真
912デフォルトの名無しさん:2006/09/30(土) 18:39:52
VC8のEXEはWin95で動かんよ。
913デフォルトの名無しさん:2006/09/30(土) 18:45:33
>>912
みたいだね

VC8のランタイムはWin98移行かららすぃds
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee&DisplayLang=ja
914デフォルトの名無しさん:2006/09/30(土) 18:51:10
ネットワークプログラミング固有の話でもないんですが質問です。
今とあるプロトコルを作ってるのですが、
NAME1
NAME2
NAME3
と任意の数の任意の文字列を伝える場合、
どういう形式で送るのが好ましいでしょうか?
最初は、 ,や#や~で区切る方向だったんですが、それだと文字列にそれらの文字が使えなくなりますし・・・
それにこの文字列には改行コードが含まれる事もあるので、それも使えません。

コマンドの先頭にオフセットを付加する事も検討しているのですが、一般的にはこういうのはどういう手段で解決しているのでしょうか?
915デフォルトの名無しさん:2006/09/30(土) 18:53:43
>>914
Cだって\を表示したいときは\\だろ?
916デフォルトの名無しさん:2006/09/30(土) 18:55:49
・hex dump
・string length
・escape sequence (SMTPの.行など)
・XML
・BER


917デフォルトの名無しさん:2006/09/30(土) 18:56:07
>>914
とりあえずHTTPでのヘッダやフィールドなんかはまんま送ってるよな
あれは内部で特殊文字をエスケープしたりしてるはず
というわけで、
> 最初は、 ,や#や~で区切る方向だったんですが、それだと文字列にそれらの文字が使えなくなりますし・・・
> それにこの文字列には改行コードが含まれる事もあるので、それも使えません。
は送れるし、改行コードだって使える
表記と意味をもう少し考えよう

もう一つは「送るサイズ」とデータをまとめて送る方法だが、
まぁその”サイズ”とやらをどうやって表現するかとか、送るサイズは決まってないけどとりあえず送りたいときなんかは
無駄な表現になるかもしれない

とりあえず時と場合による
918デフォルトの名無しさん:2006/09/30(土) 18:58:01
>>915
> \を表示したいときは
< \をデータに含めたいときは
919デフォルトの名無しさん:2006/09/30(土) 19:03:36
>>918
文字列リテラルの中だけの話でしょ?
920デフォルトの名無しさん:2006/09/30(土) 19:17:59
文字リテラル('\\')もそう。

ちなみに、printfは、\\を見て\を出力ということはやってない。
%と\を混同している人が多いが。printfの書式指定は%。
改行処理は書式文字列に埋め込まれた改行コードを出力しているだけ。
921デフォルトの名無しさん:2006/09/30(土) 19:40:26

ちと誤解があるようなので。
OSはWin95も使ってますが、
MS-DOS6.2、7.0,Windows3.1,Wi95、Win98SE、
Win2000、WinXP Pro, SunOS、ソラリス
以上を現用です。
昔は、H8350、VAX11、MDS(86)、CBM-3032なんてのも
マンセーしました。
922デフォルトの名無しさん:2006/09/30(土) 20:08:46
それだけ使った事あって、ネットワークのプログラムを作った事ないなんて、なにが楽しかったの?
923デフォルトの名無しさん:2006/09/30(土) 20:15:18
ちょっと使うためとかで自作プロトコルを作るときって、
バッファとかでガバッてやると、終了とかサイズとかの処理が面倒だし
やっぱり1バイトづつ(とか先読みとか)読み取って処理するのが一番楽だよね?
924デフォルトの名無しさん:2006/09/30(土) 20:16:40
>>911
909はJ#とJavaの区別が付いてないんだな
925デフォルトの名無しさん:2006/09/30(土) 20:17:47
>>923
そこまで決めちゃうプロトコルなの?
実装の話は抜かして進めないと先がどんどん見えなくなっていくよ
926デフォルトの名無しさん:2006/09/30(土) 20:29:34
>>925
やるなら、1バイト(もしくは数バイト)ごとがいいとか、
そういう話じゃないのか?
927デフォルトの名無しさん:2006/09/30(土) 20:33:28
>>923
TLVのマーシャリング、アンマーシャリングを行う汎用クラスを作っといて、
I/Oはそいつに任せる。
個別のプログラムは、TLVの意味解釈のみ。
928デフォルトの名無しさん:2006/09/30(土) 20:50:37
>>927それだと結局は既存の使ったほうが楽じゃないか?
929デフォルトの名無しさん:2006/09/30(土) 20:53:53
>>928
新しいプロトコル作るまでは話が進んでいるんだから、
そっちに後戻りするのはちょっと受け入れられない条件なんじゃまいか?
(最悪"TCPがあるじゃん!"に落ち着いてHTTPもSMTPもTCPに含まれちゃうことになっちゃうぞ)

とりあえず俺も今シコシコやってるから反論してみた、反省はしていない
930デフォルトの名無しさん:2006/09/30(土) 21:00:14
滑らかにバッファのカーソルをずらす上手い方法ないかな?
あるプロトコルの命令句を取り出したら、余ったバッファの値を
バッファの先頭に持って行きたいんだよね。

同じサイズのバッファを沢山プールして、フリーのバッファにmemcpyとかしかない?
931デフォルトの名無しさん:2006/09/30(土) 21:14:58

今の学生さんは普通にインターネット使って
普通にパソコンのキーを叩いてますし、
ネットワークプログラミングもナラってます。
たわしが学生時代は大型計算機全盛で、
MSもMS-DOSも影も形もなく
ネットワークはおろかパソコン通信もなかったんですわ。

932デフォルトの名無しさん:2006/09/30(土) 21:21:36
>>931
何がいいたいの?
933デフォルトの名無しさん:2006/09/30(土) 21:26:41
1980年代前半にはMSはもうバリバリだったし、MS-DOSも発売されてた。
一体何歳の人?
934デフォルトの名無しさん:2006/09/30(土) 21:29:42
結局1バイトずつが楽なんじゃないか!
何でそんなにバッファとか面倒なことにこだわるんだ?

特に>>929 >>930に言いたい!
935デフォルトの名無しさん:2006/09/30(土) 21:35:42
負荷を軽くするためだろ
936デフォルトの名無しさん:2006/09/30(土) 21:47:40
>>934
そんなこといわれてもなー
プロトコルにかんけいないしー
937デフォルトの名無しさん:2006/09/30(土) 22:03:17
プロトコルに関係ある話って具体的には何?
938デフォルトの名無しさん:2006/09/30(土) 22:04:16
1)1バイトずつ読んで解釈する部分と、
2)まとめて読み込んで1)に1バイトずつ返す部分、
の2つに分ければよろし。
939デフォルトの名無しさん:2006/09/30(土) 22:15:16
だよね。
940デフォルトの名無しさん:2006/09/30(土) 22:30:37
>>933
最初のMS-DOSはNECのPC-100で使った。
会社だから買えたけど100万円もしたんじゃ
とても個人じゃMS-DOS機は買えんかった。
DOS無しでも研究のオリジナル8086オリジナル機
で画像認識処理を研究しとったよ。
メインフレームと連携させてよ。
VAXマシンやTSSはケーブルでは
多数つながっていたが、LANではなくて
チャネルという呼び方をしてた。
当時はOSIレイヤが7層構造で・・・
みたいなお堅い空論だけが論文に
出てたが実験段階で製品レベルでは
なかった。
941デフォルトの名無しさん:2006/09/30(土) 22:38:40
>>940
時代考証間違ってないか?
ボケた?
942デフォルトの名無しさん:2006/09/30(土) 22:43:26
>>940
この人の歴史がそのまま計算機の歴史なのか…
HPとかブログで思い出話つづってくれると、とってもいいかも。
博物館とかで昔の人の知恵を見るの好きなので・…
943デフォルトの名無しさん:2006/09/30(土) 22:45:56
>>940
だから、何歳なんだよ?
944デフォルトの名無しさん:2006/09/30(土) 22:47:07
>>930
リングバッファじゃ駄目なのか?
945デフォルトの名無しさん:2006/09/30(土) 23:01:37
>>942
まあ今でこそネットワーク花盛りだけど
いろいろみんなの努力があって現在があると思ってますよ。
主にハード制御と基板設計だったけど、
今ではハックされないSSLプログラミング実装と
FPGAのVHDLでも頑張ってるよ。
946デフォルトの名無しさん:2006/09/30(土) 23:02:22
何なのこの人
947デフォルトの名無しさん:2006/09/30(土) 23:03:32
>>946
ソフトとハードいぢってる人なんじゃね?
948デフォルトの名無しさん:2006/09/30(土) 23:05:39
うざ
949デフォルトの名無しさん:2006/09/30(土) 23:27:05
久々の休みで、くつろいでるんだけど?
無知で若くていいなってね。
950デフォルトの名無しさん:2006/09/30(土) 23:30:51
今だ現役で、現場でバリバリで、こんなスレまでチェックして、
年取っていても、おまえらよりも好奇心は数倍上なんじゃ!

お前ら、頭下げんか!!
951デフォルトの名無しさん:2006/09/30(土) 23:33:30
既に壮年と呼ばれる年齢に達して、一部ハゲてる俺がきましたよ
とりあえず>>949は俺に頭下げろ
952デフォルトの名無しさん:2006/09/30(土) 23:36:09
俺60歳だけど。
みんな俺に平伏せ。
953デフォルトの名無しさん:2006/09/30(土) 23:39:50
年功序列って言葉も昔はあったよね。
何もかもが懐かしい。俺25。
954デフォルトの名無しさん:2006/09/30(土) 23:43:13
制御にいく、ソフト(今だとWeb)に行くか迷うよな。
955デフォルトの名無しさん:2006/10/01(日) 00:12:14
プログラマ板行けよ
956デフォルトの名無しさん:2006/10/01(日) 02:40:29
ソケットをcloseした直後に、そこ宛に届いたパケットって、どうなるの?
ソケットバッファはcloseした際にfreeされるんだろうけど、そのもっと下のレイヤーの
中の人達は、そのパケットをどう処理するの? 
957デフォルトの名無しさん:2006/10/01(日) 02:47:11
>>956
Socketライブラリの話をしてるなら
その前にshutdown()があるだろ?
そっちを参照しれ
958デフォルトの名無しさん:2006/10/01(日) 02:50:44
>>956
FAQ読め。half closedとか。
959デフォルトの名無しさん:2006/10/01(日) 03:51:35
>>914
遅レスだが
,で区切るなら
まず全ての,に,を追加する
つまり,や,,,は、,,とか,,,,,とかになるわけ。
あとは,でマッチするヤツで分離
処理後は,を1つ減らす。
960デフォルトの名無しさん
多分それだと、
,
,
,
な項目が出た時に判別方法ナスw
まぁ、n/2出来るかどうかで後からつけたかどうかは判別できるかな
スマートな方法ではないが・・・。