トップページ⇒tech
1001コメント356KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/12/31(土) 14:07:24
主にソケットに関しての質疑応答スレッドです。

Programming UNIX Socket FAQ (日本語訳)
  http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
Winsock Programmer's FAQ (日本語訳)
  http://www.kt.rim.or.jp/~ksk/wskfaq-ja/

関連リンクは>>2-10辺り
足りなかったら適当に付け足してね

前スレ
ネットワークプログラミング相談室 Port15
http://pc8.2ch.net/test/read.cgi/tech/1128088448/
0413デフォルトの名無しさん2006/02/27(月) 09:16:57
チェックサム値の算出の為、で合ってます?
0414デフォルトの名無しさん2006/02/27(月) 11:00:15
疑似ヘッダをデータ構造として持たなくても、
チェックサムの値は計算できるので、
プログラマの好みの問題としか言いようがない。
04154092006/02/27(月) 16:34:04
Sleepを入れないで二連続sendした後は、何のイベントも通知されなくなるんです。
FD_CLOSEも通知されません。
0416デフォルトの名無しさん2006/02/27(月) 16:40:36
eventの使い方を間違っているとかな。
0417^ω^ ◆8vOv.D2p4. 2006/02/27(月) 18:24:23
非同期のソケット用にAllocateHWndでウィンドウを作って、
メッセージループでイベントを受信→処理 としていますが、
この場合、AllocateHWndを呼び出したスレッドと、
作られたウィンドウのメッセージループは、
スレッドセーフにしなくても大丈夫ですよね?

Delphi+Winsock(WSAAsyncSelect)の話です
0418デフォルトの名無しさん2006/02/27(月) 18:29:31
XPでWinsockを利用すればIPヘッダやTCPヘッダを書きかえれるというのを聞きました
ところがSP2の導入でそれが不可能になったと聞きました。

そこで質問です、今現在IPヘッダ,TCPヘッダを書き換えて
パケットを送信する方法は無いのでしょうか?

以下の中に答えはあるんでしょうか?
�@SP2をアンインストールすればできる
�AWinPcapを利用すれば出来る
�BUnixだったら出来る
�C上記以外の方法で出来る
�Dなにやっても無理。現実は非情である。

色々間違った質問だと思いますが、良かったら答えてくださいませ
よろしくお願いします。
0419デフォルトの名無しさん2006/02/27(月) 18:34:26
答えられない人が横槍で感想を挟むのはスレ的に駄目なのかな?
でも。

>>418
ほほう!そうなんですか?
てっきりそーゆーのは
ネットワークカードのドライバ直で叩くんだと思ってました
0420デフォルトの名無しさん2006/02/27(月) 19:58:15
>>418
Linuxでpacket(7)とか。
ただ、ISPでフィルタリングされている場合は外に出ない。
04214092006/02/27(月) 20:22:30
>>410
すいません。レス見逃してました。
410さんの言うとおり、1回目の処理中に2回目のイベントが発生してるっぽいです。
WaitForMultipleObjectsが呼ばれている状態でシグナル状態になったイベントしか通達されてない状態(ぽい)です
どのように回避すればいいのでしょうか?
0422デフォルトの名無しさん2006/02/27(月) 21:04:26
>1回目の処理中に2回目のイベントが発生してるっぽい
これは何でわかったの?
0423デフォルトの名無しさん2006/02/27(月) 21:18:24
>>422
「発生してるっぽい 」ってことで予想です。
0424デフォルトの名無しさん2006/02/27(月) 21:28:02
FD_READがきたら、-1を返すまでrecvする必要があるけど。
0425デフォルトの名無しさん2006/02/27(月) 22:20:36
>>424
-1まで読むように書き換えたら正常に動くようになりました。ありがとうございます。
そうだったんですか。知りませんでした・・・
0426デフォルトの名無しさん2006/02/28(火) 11:00:18
受信したTCPパケットのヘッダ情報を取得するには
rawソケット使わないと駄目ですかね?
0427デフォルトの名無しさん2006/02/28(火) 12:35:01
>>418
とりあえず、WinPcapというか、その中のPacket.libを使えば
どんなイーサネットフレームの読み書きでもできる。
NDISレベルで読み書きするので、ATMとかFDDIでもOKだと思う。
イーサネットカードしか持ってないので知らんが。

ただし、パケットをイーサネット(データリンク)のヘッダまで含めて
自分で作らないといけない。Linuxのpacket socketなら、arpの解決
ぐらいはしてくれた気がするが、それもしてくれない。
iphlprのSendARP呼べば終わることだけど。

IP、TCPを書き換えてってのが、OSのスタックが吐いたパケットに
加工する、という意味なら、仮想インターフェイスを作って、
そこへ書き込まれたフレームを読んで、加工して、実インターフェイスに
書き出す、とか。
GREのトンネル作るとか、802.1qのタグ振るとか、MPLSのラベル割り込ませるとか、SoftEther的なもの
つくるとかだったらこっち。
仮想インターフェイスのつくり方は、openvpnとか、tapcontrol.exeとかでぐぐれ。
0428デフォルトの名無しさん2006/02/28(火) 15:51:15
ネットワークプログラミング初心者です。
418 さんの質問と多少かぶるのですが↓のような環境で
AのポートaaaaとSのポートbbbb」がTCP接続されているのですが、

[PC(A)]---[PC(B)]---[router(R)]---(TheInternet)---[Server(S)]
  (a) (b) (c)  (d)  (e)         (f)

(A)(a)192.168.1.2 OS:WinXP (ポートaaaaでクライアントを使用)
(B)(b)192.168.1.1 OS:WinXP (Windows付属のネットワーク共有(DHCP)が稼動)
(c)192.168.0.2
(R)(d)192.168.0.1
(e)202.yyy.yy.y
(S)(f)202.xxx.xx.x (ポートbbbbでサーバー稼動)

BでA←→S間のパケットを編集する場合どのようにしたらいいでしょうか。
VC#のraw Socketを使ってBを通過するパケットのIPヘッダーなどをモニター
したり、IPヘッダーを作ってB→Aに送ったりすることはできたのですが
AからのパケットをSに流さずにBで止める方法がわかりません。
427 さんのWinPcapをつかえば可能なのでしょうか。
なにとぞご教授のほどお願いします。
(ちなみにAのクライアントソフトはホストのIPとポートが固定なのでBで串などは
つかえそうにありません。)
0429デフォルトの名無しさん2006/02/28(火) 15:59:03
>>428
Aのクライアントソフト、これの詳細plzwっうぇwっうぇ
0430デフォルトの名無しさん2006/02/28(火) 16:00:48
>>428 (訂正)ずれました
[PC(A)]---[PC(B)]---[router(R)]---(TheInternet)---[Server(S)]
NIC~(a)~~~(b)~~(c)~~~(d)~~~~~(e)~~~~~~~~~~~~~~~~~~(f)
0431417^ω^ ◆8vOv.D2p4. 2006/02/28(火) 16:50:24
どうやら あまりに アホな 質問を して しまった ようだ
0432デフォルトの名無しさん2006/02/28(火) 20:48:26
PC(B)をWindows止めてLinuxでも入れたら?
0433デフォルトの名無しさん2006/02/28(火) 21:05:03
すれ違いかもしれませんが質問します。

コマンドプロンプトのnet viewでLAN上のPCの一覧が
表示されるんですが、どっかのPCが突然落ちた場合でも
net viewでそのPCがいつまでも表示されてしまいます。

nbtstat -Rとかやってもだめでした。

いい方法がありましたら教えてください。
0434デフォルトの名無しさん2006/02/28(火) 21:32:54
それはマスタブラウザがブラウズリストを保持してるから。
更新間隔を短くすれば、当然ネットワーク負荷はあがるが、
失効までの間隔も短くなる。
0435デフォルトの名無しさん2006/02/28(火) 22:33:37
それプログラミングじゃないし…
0436デフォルトの名無しさん2006/02/28(火) 22:53:10
ああなんだ。Sambaを改造する話か。
0437デフォルトの名無しさん2006/03/01(水) 01:27:29
>>428
1. 「Routing and Remote Access」サービスを止めるか、iphelperの
 EnableRouter()で、パケットのフォワーディングを止める。で、WinPcap
 使って、自分のプログラムでフォワーディングする。ついでに加工する。

2. NDISのフィルタドライバで、パケットのドロップ、加工を制御する。

のどちらかだと思うけど、1はダサい。やるなら2。
フィルタドライバはWINDDKのPassThruドライバを雛形にすれば良い。
WINDDKがめんどくさいか、MSDNに入ってなくて手に入らないなら、
ttp://www.ntkernel.com/w&p.php?id=7
のWinpkFilterが使えそうな気がする。privateかeducational useなら無料
らしい。

>>432の言うように、Linuxにするなら、iptablesのモジュールにするのが
手っ取り早いと思う。MASQUERADEみたいなもんか。
0438デフォルトの名無しさん2006/03/01(水) 12:40:10
>>437 的確なアドバイスありがとうございます。
2のNDISフィルタはDDKがないのと自分にはまだ敷居が高そうなので
とりあえず1のIpHelper+WinPcapを試すことにしました。

>>432 PC(B)がメインPCなので普段よく使うアプリなどの関係で
なかなかLinxにきりえにくに状況です。(PC(A)はスペック低すぎるので)
ただいつかはLinuxメインでいきたいとおもいます。
0439デフォルトの名無しさん2006/03/02(木) 02:17:44
snmpでsnmptrapだけ実装したいんだけど
net-snmpの実装があまりにもすぱっげちぃで
はきそうで
そのいいソース知ってる人いませんか?
0440デフォルトの名無しさん2006/03/02(木) 06:41:43
実装したいというのはどういうこと?
snmpのライブラリを書くわけ?
利用するコードを書くの?
0441デフォルトの名無しさん2006/03/02(木) 10:00:21
ソケットが開いてるか閉じてるか判定するにはどうしたらいいんですか?
0442デフォルトの名無しさん2006/03/02(木) 10:14:09
ソケットを開くにはどうすればいいんですか?
0443417^ω^ ◆8vOv.D2p4. 2006/03/02(木) 12:51:39
>>441
recvしてみて返り値がSOCKET_ERRORなら閉じてる
0以上なら繋がってる

じゃだめかな
0444デフォルトの名無しさん2006/03/02(木) 16:18:15
>>441
コネクション型だとして、getpeernameとか呼んでみたらどうかな。
0445デフォルトの名無しさん2006/03/02(木) 16:27:06
socket() が成功した後はずっと「開いている」状態だろ。
close() しない限り勝手に閉じないよ。

接続しているかそうでないかなら>>444
0446デフォルトの名無しさん2006/03/02(木) 20:55:16
はじめまして
実装上でアドバイスください
WinSockで TCPでデーターを読み込む場合
1つのセッションで全てを行ってもよろしいのでしょうか?

もちろん回線的には変わらないのでしょうが
内部のバッファ的にセッションをいくつか張ってデーターを
やりとりした方が有利なのでしょうか?
0447デフォルトの名無しさん2006/03/02(木) 20:57:07
分割ダウンロードみたいな話?
0448デフォルトの名無しさん2006/03/02(木) 21:00:52
>>446
一つのセッションだと、恐らく接続先は単一のサーバであって、
要求はたぶん一つ程度のスレッドで処理される。

要求を複数に分割できるのなら、複数に分けて並行して行えば
複数のサーバに分散されて処理されるかもしれないし、
そうでなくても複数のスレッドに分散されて、先方のCPUの
処理時間を多く利用できるかもしれない。

行儀は悪い。
04494412006/03/02(木) 22:11:01
なるほど、ありがとうございました!
04504462006/03/02(木) 22:22:37
ありがとうございます
サーバー側のほうまでは考えておりませんでした。
たしかにその通りですね。

クライアント側もWinsockですし
やはり単一スレッドでいじめない方がよろしいですよね?
Winsock1.0の頃はCPU負荷だけでデーター保障されてる
TCPでもデータートンでましたし・・・
0451デフォルトの名無しさん2006/03/03(金) 00:55:28
snmpのライブラリ作るのつらいです。
だれかtrapだけでも作り方教えてください
0452デフォルトの名無しさん2006/03/03(金) 02:10:53
>>451
perl の Net::SNMP::Transport あたりを参考にしてみれば。
Cのシンプルなやつもありそうだけど、簡単にググった程度では見つからなかった。
0453デフォルトの名無しさん2006/03/03(金) 03:28:13
CreateGaame〜陸海空オンライン〜
開発開始!力ある者だけこぃ!
0454417^ω^ ◆8vOv.D2p4. 2006/03/03(金) 13:18:17
>>453
ぐぐった
http://www112.sakura.ne.jp/~kaientai-project/creategame.htm

これはひどい
0455デフォルトの名無しさん2006/03/04(土) 05:06:27
Windows(xp)のRAWソケットは信用できん、とか聞いたのですが、
どこがどのように信用できないのでしょうか?
意図したようにちゃんと動かないとか?
0456デフォルトの名無しさん2006/03/04(土) 05:32:26
>>455
言った奴に聞け
0457デフォルトの名無しさん2006/03/04(土) 05:45:58
javaで作られたオープンソースのプロクシサーバーを教えて下さい。
0458デフォルトの名無しさん2006/03/04(土) 07:54:49
>>457
>>269
0459デフォルトの名無しさん2006/03/04(土) 08:35:45
レスありがとうございます。
javaでかかれたものはないでしょうか?
0460デフォルトの名無しさん2006/03/04(土) 08:43:14
>>459
>>269
0461デフォルトの名無しさん2006/03/04(土) 16:09:40
>>459
http://www.jumperz.net/index.php
0462デフォルトの名無しさん2006/03/04(土) 18:20:36
iTuneで『音楽を共有する』って機能がありますよね?
誰が自分のどの曲にアクセスしているのか調べるツールを作ろうかと思っています。
パケットを監視してどのIPに対してデータを送信しているのか調べるツールはフリーでも
既にあるようなので作れないことはないんじゃないかと。
ちなみに私はネットワークプログラミングの知識は今現在全くないです。
ネットで調べてはいるのですが、既に具体的なやり方を知っている方がいたら是非教えてください。参考になるサイトなどでも構いません。
言語はC++です。
よろしくお願いします。
0463デフォルトの名無しさん2006/03/04(土) 18:37:45
>>462
ttp://www.sysinternals.com/
0464デフォルトの名無しさん2006/03/04(土) 19:24:21
>>462
netstat -t
0465デフォルトの名無しさん2006/03/04(土) 23:41:22
>>462
WindowsならWinSock2でパケットを拾うことができる
WinSock2はNT系のみしか実装されてないけどね
拾うデータは完全に生のRAWパケットだから自前で分別して組み立てて判別しないといけない
0466デフォルトの名無しさん2006/03/05(日) 02:05:16
パケットの組み立てやってみたいんだけど
サンプルとかありますか?
HTTPだけでも対応してみたい
0467デフォルトの名無しさん2006/03/05(日) 04:32:42
http://www.ne.jp/asahi/yamashita/programming/tips/raw_socket.cpp.html
0468デフォルトの名無しさん2006/03/05(日) 15:55:12
殆どパケットの出入りが無いプログラムで、
送受信を同じポートにするって可能ですか?
0469デフォルトの名無しさん2006/03/05(日) 16:04:56
意味がわからない。ふつう送受信は同じポートだろ。
0470デフォルトの名無しさん2006/03/05(日) 16:09:43
ん?クライアントから見た受信ポートってふつう不定だろ?
0471デフォルトの名無しさん2006/03/05(日) 16:22:46
すみません、変な説明で・・
サーバーのプログラムが受信用のポートを用意している状態で、
そのポートから、別のプログラムがインターネット側に
パケットを送信する事は可能でしょうか?
0472デフォルトの名無しさん2006/03/05(日) 16:24:05
bindしてからconnectするようなのは変態。
0473デフォルトの名無しさん2006/03/05(日) 16:28:16
「webサーバにあるブラウザから別のサーバーへパケットを送信して見ることは可能」
と同じ意味なら可能。
0474デフォルトの名無しさん2006/03/05(日) 16:55:24
>>471
可能というかaccept後のソケットでは普通のことです。
0475デフォルトの名無しさん2006/03/06(月) 00:51:08
簡単なライブラリどれー?
0476デフォルトの名無しさん2006/03/06(月) 01:13:28
pollの第2引数って1025以上だと異常復帰するけど
pollで1025以上扱うにはどうすればいいの?
0477デフォルトの名無しさん2006/03/06(月) 01:56:56
ヘッダの定数増やしてカーネル再構築。
0478デフォルトの名無しさん2006/03/06(月) 02:56:20
>>462-467
04794712006/03/06(月) 07:58:23
>>474
ここで言う「サーバーのプログラム」と「別のプログラム」は
同一のPCの上で動作しているのですが、問題無いですか?
0480デフォルトの名無しさん2006/03/06(月) 12:58:13
/proc/sys/fs/file-maxを1025以上にして、setrlimitで1025以上にして、poll発行してもだめなの?
0481デフォルトの名無しさん2006/03/06(月) 14:51:40
ああ゛ー、どう質問してよいのやら。パニック状態の>>294です。

「UNIX単体」で動く(デタラメな)データベースは作成できました。
それをUDPソケットを使って
1. 航空便名char FlightID[20]
2. 8つのオプションint option(空席チェックや購入など)
3. 購入の場合はそのチケットの枚数int seat
だけを送って、その結果をサーバーのファイルから読んでクライアントに返す、
というのをやるつもりです。
で、今
クライアント: flightIDを入力
サーバー: そんなflightIDがあるかチェック
そのflightIDがあれば
クライアント: optionを入力
サーバー: optionを送って結果を返す、って方法を考えてます
(よって入力出力入力出力と計二回やり取りすることになります)。
でも、UDPって二回もやり取りできないような気がしてきました。←説明すると長くなります
flightIDとoptionは一度に送って結果も一度に返すようにすべきですか?

あー、やっぱりうまく説明できない。
どっっっこ探しても実用的な(パクれる)サンプルがないし…もう鬱出氏脳…。
04822942006/03/06(月) 14:57:41
やっぱりもっと簡単な質問にしときます。
UDPクライアントの引数は4つありますよね?(って一般的なのかも知らないですが)
4つ目はポート番号で省略ができることは分かります。
でも3つ目はエコー用の文字列ですよね?
今回はこれ使わないんですけど、ないと走りませんよね?
一般的にはこの3つ目の引数には""とか"Dummy"とか適当に入れちゃっていいんですか?
0483デフォルトの名無しさん2006/03/06(月) 14:59:31
UDPサーバなんて言葉はこの世に存在しません
04842942006/03/06(月) 15:01:43
ここはぐっとGrin and bear it.
0485デフォルトの名無しさん2006/03/06(月) 15:01:57
>>482

>>4
> TCP/IPによるネットワーク構築
>〈Vol.1〉原理・プロトコル・アーキテクチャ
>http://www.amazon.co.jp/exec/obidos/ASIN/432012054X/

で一から勉強しろ。
0486デフォルトの名無しさん2006/03/06(月) 15:04:31
同期の必要性がある場合はUDPなんかつかうな
HTTPサーバがどうやって動いてるのか調べてみればいい
君のやりたいことそのまんまだから
0487482 = 2942006/03/06(月) 15:18:01
>>485
第一日本に住んでないし。
本ならバイブルとされているはずの
W. Richard Stevens著UNIX NETWORKING PROGRAMMING第一巻が
手元にあるけど実用的な使い方には一切触れてない凄物。
TCP/IP SOCKETS IN Cという本もあるけど、これもそう。
検索してもこんなの↓ばっかり。

ttp://www.ksworks.org/memo/net/udpsndrcv.htm

実際に「インタラクティブ」なのが一つたりとも見つからない。
マジ、これはイジメか?

>>486
>同期の必要性がある場合はUDPなんかつかうな

あ、それがキーかもです。
今回はUDPでやれ、ってことになってます。
UDPは"One message at a time"ですよね?
ってことは一度に送る方法しかないってことですか? ←取り敢えずここははっきりさせましょう
0488デフォルトの名無しさん2006/03/06(月) 15:22:10
つーか、sshかrpcで済むことをなんで生実装したがるんだろ。
0489482 = 2942006/03/06(月) 15:25:08
それが ネ ッ ト ワ ー キ ン グ プ ロ グ ラ ム です。

それを言い出したらみんなプログラミングなんかせずに
データベースはオラクル使え、表計算はエクセル使え、となるじゃないですか。
0490デフォルトの名無しさん2006/03/06(月) 16:01:08
ていうかUDPってパケットが届くことを保証してない。途中で消えるかも知れない。
その状態でTCP並のことをしようというのであればそれなりに自分でやる必要がある。
再送の機能を付けるとかね。でもそんなのはTCPでやれば悩むことはなくなる。
0491デフォルトの名無しさん2006/03/06(月) 16:02:15
TCPのソースみたらいいんじゃね?
0492デフォルトの名無しさん2006/03/06(月) 16:10:17
UDPはパケットがばらまかれたあと何もしない
届いたかもわからないし、途中で分割されることもあるし、順番がばらばらになる
送りたいデータをひとかたまりとしてデータのサイズと分割数とどの位置のデータか
を含めて小分けにしてばらまく
受け取る側で全部そろうまで待機しつづける、タイムアウトになったら必要な位置の
データをもう一回まいてもらう
まずそこから作らないといけない
0493デフォルトの名無しさん2006/03/06(月) 16:24:14
>>489
オラクルはメンテナンスも含めればとんでもない費用が掛かるし、
ちょっとした集計にエクセルは重くなりますよね。
でも、SSHもrpcも費用が掛からず後者に至ってはシステム標準。
土方プログラマなら兎も角、SEならプログラミングコストを削減することも仕事のうちです。
つーか、UDPがどんなものかも知らないのにネットワークプログラミングを語られてもね。
0494デフォルトの名無しさん2006/03/06(月) 17:32:51
スレが汚れるので馬鹿は放置の方向で。
0495デフォルトの名無しさん2006/03/06(月) 18:02:14
すんません。TCPで質問です。
クライアント側で自分が今使ってるポート番号を
知る方法ってありませぬか?
普通気にすることはないので、スルーしてたんですが、
必要な状態に陥ってしまったのでorz。

環境はLinuxでございます。
どなたか教えてください。おながいします。
0496デフォルトの名無しさん2006/03/06(月) 18:07:09
>>495
netstatのソースでも読めばよいのでは
0497デフォルトの名無しさん2006/03/06(月) 18:16:50
>>495
/proc/net の下で使えそうなのを探してみる
04984952006/03/06(月) 18:33:30
>>496 >>497
スイマセン。恥ずかしながらwindowsばっかで仕事してました。
急遽Linuxで作るハメになっちゃったんで、ソース追っかける
とかは中々難しいです。

>>497のディレクトリの直下ってこれ何が入ってるんでしょう?
viewとかで見たらなんか文字列がゴチャゴチャとありますが。
と、こんなレベルなんです(--;。

こういう回答が出ると言うことは、ズバっとコマンドで指定して
取る事は出来ないのでしょうか?ホントスミマセン。
0499デフォルトの名無しさん2006/03/06(月) 18:33:30
>>481
> でも、UDPって二回もやり取りできないような気がしてきました。←説明すると長くなります

できます。←説明すると長くなります
0500デフォルトの名無しさん2006/03/06(月) 18:35:43
>>495
getsockname
0501デフォルトの名無しさん2006/03/06(月) 19:28:27
>>495
> クライアント側で自分が今使ってるポート番号を
> 知る方法ってありませぬか?

これは他のプロセスを含むのか含まないのか?
含むなら netstat --tcp -a で出来る。
ちなみにこれの元になるものが /proc/net 以下の
仮想ファイルだ。
0502デフォルトの名無しさん2006/03/06(月) 19:29:07
コマンド? プログラミングじゃね〜じゃん。
lsofで出来るけど。
0503デフォルトの名無しさん2006/03/06(月) 20:03:49
コマンドを使うのがプログラミングじゃなかったら、
シェルスクリプトでなにか作るのはなんていうの?
0504^ω^ ◆8vOv.D2p4. 2006/03/06(月) 20:04:20
>>498
windowsが恥ずかしいのか・・・
0505デフォルトの名無しさん2006/03/06(月) 20:06:15
スクリプティング
0506デフォルトの名無しさん2006/03/06(月) 20:33:22
>>504
恥ずかしいと思う。
0507デフォルトの名無しさん2006/03/07(火) 00:52:55
全然違う話になるんだけど、俺実装するとき
RFCしか読まないんだけど、やっぱり
バイブルと呼ばれる日本語の本読んだほうが
いいの?2冊だけあるんだけどRFCに書いてること
回りくどい日本語で書いてあるだけとしか思えない
俺は馬鹿なのだろうか
0508デフォルトの名無しさん2006/03/07(火) 00:59:41
英語が読める人は、英語のバイブルを読めばいいんでないの。
0509デフォルトの名無しさん2006/03/07(火) 01:05:00
>>507
ちゃんとdraft-*も読んだ方がいいですよ。
0510デフォルトの名無しさん2006/03/07(火) 09:48:04
winsockを使ってHTMLを取得するプログラムを書いてるんですが
リクエストを送るときに
GET /index.html HTTP/1.0\r\n\r\n
と2回改行コードを入れないとサーバが改行コードとして認識して
くれてないみたいなんですがこれで普通なんですか?
とりあえず動いてるのでいいですけどすっきりしないので知ってる
方がいたら教えてください
0511デフォルトの名無しさん2006/03/07(火) 11:37:06
はい。
>>5行って、HTTPのRFC読んでください。
0512デフォルトの名無しさん2006/03/07(火) 12:11:35
GET /index.html HTTP/1.0\r\n
\r\n

インデント正確にするとこうだな
空行が終了判定だぞ
0513デフォルトの名無しさん2006/03/07(火) 12:22:16
>>511,512
ああ〜そうか(´A`)アホでした
すっきりしました!どうもありがとうございます
■ このスレッドは過去ログ倉庫に格納されています