ネットワークプログラミング相談室
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。
NGNG0809デフォルトの名無しさん
NGNGどなたか、よろしくお願いします
0810デフォルトの名無しさん
NGNGつながっている状態から、
クライアントがソケットを切断した場合、
サーバー側は、一度ソケットを閉じないで
そのままlistenしても良いのですか?
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG接続受付用のソケットとデータ通信用ソケットの違いを理解していない奴が多すぎる
0813810
NGNG閉じる(closesocket) -> socket生成(socket) -> bind ->
listenで良いのですか?
0814デフォルトの名無しさん
NGNGacceptで受け取ったsocketは閉じるとして、
bindした方は閉じる必要無いのでは?
0815デフォルトの名無しさん
NGNG812が言っていることに対して勉強し直せ。
0816810=813
NGNG1.bind->listen->accept用のソケット(socketで生成)と、
2.acceptで受け取ったデータ通信ソケットということですね
で、2は閉じて、また新たにacceptしなさい
ということですね
0817socksock
NGNGWin2kでビルドし直して動作させたところ、
30分ぐらいで止まってしまいました。
Win2kはSP2を適用しています。(SP1ではBugが…)
SP2でwinsockプログラムがうまく動作しないという噂
を聞いたことがありますでしょうか。
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNGOSを疑うよりもまず自分のコードを徹底的に疑いましょう。99.9%は自分のミスです。
0820デフォルトの名無しさん
NGNGさっきちょっと調べたら送信要求タイムアウト設定できない
バージョンもあるじゃん。
WinInet使ってHttp転送しよとしてるんだけど、諦めろってことか?
0821デフォルトの名無しさん
NGNG0.1%もOSに責任があるようなOSなぞ逝ってよし
0822デフォルトの名無しさん
NGNGマターリいこうよ、なっ?
0823デフォルトの名無しさん
NGNG0.1%って微妙な線だな
Winは45%くらい責任があるしなぁ
BSDくらいか?
0824デフォルトの名無しさん
NGNGなんでもOSのせいにするなって
0825デフォルトの名無しさん
NGNGでも結局ミスしているのは自分
以前、人殺ししたけど捕まらなかったから、また殺したら今回は捕まるのはおかしいと言っているようなもの
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG>825は>823に文句言ってんの。
分かった?
0828デフォルトの名無しさん
NGNGその0.1%のバグもほぼ対処法がある。
その対処を知らない/行っていないのはやっぱり開発者の責任。
0829元PG
NGNGそうとも言い切れないと思うけど?
漏れは5年間でメーカーが認めたOSバグに2回遭遇したよ。
(汎用機でね、KシリーズとASシリーズ)
ASのバグなんて、工場のシステム2日間止まって大騒ぎ、保
証騒動になってた。
米国の開発チームにまで話がいったのどうのと聞いた。
OSのバグやと騒ぐ奴に限ってショボミスしてるというのは賛成
する。
大体、開発者のミスだもんな。
上記のトラブル時は、その考え方のせいで対応が遅れたけどな。
0830デフォルトの名無しさん
NGNGまず、サーバがポート番号10000を見張っている、並列サーバ
(fork()する、またはマルチスレッド)だとします。サーバは、ク
ライアントから接続要求が来ると、要求を受け付けて、要求を受
け付けるためのプロセスをfork()します。fork()されたプロセス
はそれぞれサーバ側では10000番ポートを利用して通信を行いま
す。
クライアント1: 20000 <- TCP/IP -> 10000 :サーバプロセス1
クライアント2: 20001 <- TCP/IP -> 10000 :サーバプロセス2
ここで、疑問なのですが、要求を処理するためにfork()されたプ
ロセスは、それぞれサーバ側では10000番ポートを利用して通信
を行いますよね。クライアントが複数あった場合、10000番ポー
トに飛んできたデータは、サーバプロセス1に渡すべきかサーバ
プロセス2に渡すべきかどうやって判断するのでしょうか?
TCP/IPでの接続確立とは、こういったセッションの管理を自動で
やってくれるものなのでしょうか?それとも私、根本から勘違い
しています?
0831デフォルトの名無しさん
NGNGまた>>812に該当する奴が出てきたな
0832 デフォルトの名無しさん
NGNGTCPの接続は、
・自分のIP address
・自分のport番号
・相手のIP address
・相手のport番号
の4つ組で識別される。始めの二つだけではない。
始めの二つは同じなのに別の接続、という事があり得るという事。
そして、TCPの接続と(各自分サイドの)socketは一対一対応。
上記の事を知らない人が多い事を見ても、socketはいい抽象化だと思われ
0833デフォルトの名無しさん
NGNG結構少ないのかなあ
0834デフォルトの名無しさん
NGNG(スレ立てるまでもない第5弾にも投稿したのですが…)
(こちらの方が、より技術的なレスがくると思い再投稿します)
今まで作業上、
TeraTermを用いてIP経由(TCPポートは任意。仮に6001)でリモートアクセスサーバに
接続後、TeraTermのbreak信号を送出(Alt+b)して遠隔端末にして使っていました。
これと同等のことをperlで実行したいと考えているのですが、
方法がいまいちわかりません。
IO::Socket::INETでソケット作ってそれにbreak信号を流すことで
実現できると考えているのですが、ブレーク信号って具体的にはどうやって送るんだろ?
というところで行き詰まっております。
ex.) printf <$SOCKET_hoge> "break信号??"; # という感じかなーと。
それとももっと別の良い方法があるのでしょうか?
ご指導のほどよろしくお願いします。
0835 デフォルトの名無しさん
NGNG> TeraTermを用いてIP経由(TCPポートは任意。仮に6001)でリモートアクセスサーバに
> 接続後、TeraTermのbreak信号を送出(Alt+b)して遠隔端末にして使っていました。
相手はtelnet protocolを理解するわけね?
IAC BRKを送る。"\255\243"
http://www.iij.ad.jp/pub/RFC/rfc845.txt
0836デフォルトの名無しさん
NGNG?
0837 デフォルトの名無しさん
NGNG> http://www.iij.ad.jp/pub/RFC/rfc845.txt
ftp://ftp.iij.ad.jp/pub/RFC/rfc854.txt
でした。(記憶で書いたたら番号も間違えていた…)
0838デフォルトの名無しさん
NGNGいまさらながら、
RFCと2chのありがたみを感じております。
(RFCを真剣に読もうとしなかったあっしが恥ずかしいです。)
感謝。多謝。
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNGTFTPのサーバプログラムを作ってみようと思うのですが、
参考になるサイトや書籍、
もしくは、ソース公開してるフリーソフトで参考になりそうなもの、
なにか知りませんか?
0841デフォルトの名無しさん
NGNGtftpd.cそのもの。BSDやLinuxにはついてくる。
0842デフォルトの名無しさん
NGNGhttp://RFC.net/rfc1350.html
このくらい自分で探せや
0843デフォルトの名無しさん
NGNGセマフォの使い方がよくわかりません。
POSIX, SYSV,形式それぞれについて教えてください。
ネットワークプログラミングIPC編は読みました。
それでも、サパーリです。
0844 デフォルトの名無しさん
NGNG> セマフォの使い方がよくわかりません。
原理が分かってないのだから、OSの原理/基礎の本を読め。
0845-
NGNG>セマフォの使い方がよくわかりません。
だいたい同時に使ってるのに使い方がよくわからないのか??
0846デフォルトの名無しさん
NGNGサーバ側からshutdown -> closeというのは、
本来やってはいけない事なのでしょうか
win32でこれをやった場合、特に問題なかったのですが、
winCEでこれをやったら動作がおかしくなってしまうのです
(その後、新しいsocket生成はできるのだが、connectができない
リセットかけるまで復帰しない)
かならずクライアント側から先に
shutdown -> closeしなくてはいけないのでしょうか?
0847デフォルトの名無しさん
NGNG>>794
0848デフォルトの名無しさん
NGNG0849
NGNGどうやればいいんでしょうか?
本屋であさってみたものの、どれもピンとくるものがなくって・・・
0850デフォルトの名無しさん
NGNGhttp://www.vector.co.jp/soft/winnt/net/se136129.html
0851デフォルトの名無しさん
NGNG一度にsendして良いサイズの基準って、なにかありますか?
何も考えずにそのまま、最大2Mくらいのものを一度にsendしていたのですが、
(有線の)LANでは特に問題なかったのですが、
(しかも、sendの戻り値を見ると、一回のsendで送れてしまっているようである)
無線LANで使用したら、
sendすると固まってしまい、しばらく(数十秒)してタイムアウトで返ってくる、という事が
多く発生するようになりました
それで、分割して(たとえば2kくらいとか)sendするようにしたのですが、
そしたら固まる確率はかなり減ったのですが、やっぱりたまに固まりがおきてしまいます
無線LAN自体の問題でしょうか?
0852デフォルトの名無しさん
NGNGたしか、8kか16kだったような。
0853デフォルトの名無しさん
NGNGただ、分割してるだけ?
2k送ったら1バイトのackを受信って感じでどうかな?
ちょっと遅くなるかもしれないけど。
0854デフォルトの名無しさん
NGNGあとは自分で調べよ
0855デフォルトの名無しさん
NGNGヒントくださーい。
0856ヒント
NGNG0857デフォルトの名無しさん
NGNGもう一声!
0858デフォルトの名無しさん
NGNGSO_MAX_MSG_SIE
0859デフォルトの名無しさん
NGNGSO_RCVBUF
SO_SNDBUF
0860デフォルトの名無しさん
NGNGこれ、どう使えばいいんですか?
0861デフォルトの名無しさん
NGNG調子に乗るな、いい加減にしろ
0862デフォルトの名無しさん
NGNGなーんだ、知らないんだー
0863デフォルトの名無しさん
NGNGさようなら、そしてもう来るな
0864デフォルトの名無しさん
NGNGプログラマーはすぐ怒るんだから。こわっ
0865デフォルトの名無しさん
NGNG使わない方がよいですか?
0866デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNGみっともない恥じをカクコト莫れ
すっこめウンこ厨房
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG> ポート番号10000って、何に使われる事が多いですか?
> 使わない方がよいですか?
http://www.iana.org/assignments/port-numbers読め。最後の部分もな。
> 何に使われる事が多いですか?
「多い」とか「多くない」の問題じゃないよ。自由に使っていいport番号は決まってる。
お前がICQ.comの馬鹿技術者なら別だけど。
0870デフォルトの名無しさん
NGNGけっきょくマニュアルに載っていること以外は答えられないのね.
0871デフォルトの名無しさん
NGNGソケット通信を行うプログラムでWindows98とNTでの違いはあるんでしょうか?
実は98上で動いたものがNT上で動かなくて困ってるんですが...。
0872デフォルトの名無しさん
NGNGつか、マニュアルの読み方くらい覚えてから来い。
そこから教えてたんじゃ玉欄。
0873デフォルトの名無しさん
NGNGこれだけヒントをもらった上に、偉く時間が経っているにも関わらず、
未だに道に迷ってうろついている方向音痴のあなたに乾杯!
永久に遭難していた方が世のため人のため。
0874デフォルトの名無しさん
NGNG「UNIXネットワークプログラミング」で紹介されている
socketやconnect等のラッパー関数であるSocketやConnect関数は
どこかにソースがあるのですか?
あるのだとしたらどのディレクトリの中にあるのか教えてください。
お願いします。
0875デフォルトの名無しさん
NGNG11ページを見よ。
0876デフォルトの名無しさん
NGNGどうもどうも。
0877デフォルトの名無しさん
NGNGで取得できる送受信バイト数と同様な値をプログラムから取得したいのです。
SNMPを使う事まではわかるんですが具体的な手順を教えてください。
あ、Win9xとWin2000のVC6です。
0878デフォルトの名無しさん
NGNG0880877
NGNGサンクスね
あと、Google検索で色々調べてたら見つかりました。
http://www.codeguru.com/mfc/comments/26225.shtml
http://www.zdnet.co.jp/help/howto/linux/0007master/06/
何とか目的の物が出来ました。
0881デフォルトの名無しさん
NGNG学生(20歳)
0882デフォルトの名無しさん
NGNG板違い?
http://pc.2ch.net/php/
WEBプログラミング@2ch掲示板
0883kevin hikinik
NGNGtracertがUDPを利用してるとかICMPを利用してるとか・・・
どゆこと?
プロトコルに基づいてる!?
コードになりゃみんないっしょじゃんか・・・。
用はソケットなりストリームなりを使えばいいだけじゃん。
システムが全治2週間ほどあるんで、見ようにも見れんし。
プロトコル専用のヘッダやライブラリがあるわじゃないっしょ?
プロトコルに基づいて実装するってどゆこと?
0884デフォルトの名無しさん
NGNGマジなのか?
もう少し勉強してから質問したほうがいいぞ。
それか、質問する時の言葉遣いを覚えろ。
0885kevin hikinik
NGNG勉強いっぱいしました。
実装してないだけだい!
頼むから教えろ。
0886デフォルトの名無しさん
NGNG知るにはどうしたらいいの?
0887デフォルトの名無しさん
NGNG小出しにして送信できたバイト数をカウントしなさいYO!
0888デフォルトの名無しさん
NGNGプロトコルをプログラミング言語か何かだと誤解してるような。
0889デフォルトの名無しさん
NGNGプロトコルという言葉の意味を考えてみよう。
0890デフォルトの名無しさん
NGNG小出しにすると送信速度遅くならない?
0891デフォルトの名無しさん
NGNG「PGなのに知らなかった事を潔く質問してみるスレ」で解決できたんじゃないの?
http://pc.2ch.net/test/read.cgi/prog/1002086817/643-656
0892デフォルトの名無しさん
NGNG本当は資格の勉強なんかしたくないんだけど簡単なら取っちゃおうかなと思ってるのですが・・
0893( メ ´Д`)<893 ◆HHJeUSD6
NGNG0894質問。
NGNGrecvの方を固定サイズにした場合、2回以上send
すると正しい文字列でrecvできませんよね?
これを正しく受信するにはどうしたらよいですか??
場合わけしようにもかなりあるような気がして。
send回数は1〜何回でも連続でするものとします。
0895デフォルトの名無しさん
NGNG可変長のデータをやりとりしたい時は、
最初に長さを送るのが簡単だとおもいます。
それか受けとった後に'\0'を探して…
0896質問。
NGNGありがとうございます。でも、
他の方法ってありますか?
0897デフォルトの名無しさん
NGNG結果をグラフで逐次表示したいんですが何か良い方法を
教えて下さい。
0898デフォルトの名無しさん
NGNGそれはネットワークプログラミングと、どのような関係がありますか?
0899デフォルトの名無しさん
NGNGいまいち言いたいことが分からんけど。
(1)相手が1回目のデータをすべて受信できたことを確認してから2回目のデータを送る
(2)データサイズを固定長にしておく
(3)データを見ればどこで切れるか分かる構造にしておく(データサイズを送る、データを\0で区切る、など)
の、どれか。
0900質問。
NGNG説明不足ですみません。
sendする文字サイズは文字の長さなので可変長です。
recvする文字サイズは固定長です。
んでもって、sendとrecvが1:1に同期しながら
動かしているんで・・・。(^^;
ありがとうございました。
0901デフォルトの名無しさん
NGNGsendとrecvが1:1に同期しながら動く?
それは、そもそも無理では?
1回のsendで送ったデータが、2回以上のrecvに分割されるかもしれない。
2回のsendで送ったデータが、1回のrecvで受け取れるかもしれない。
このへんは何も保証されないので、データサイズを送信するなりしなければ、解決になりません。
0903デフォルトの名無しさん
NGNGきっと、計算プログラムとグラフプログラムがあって、その間を
ネットワークで繋いで逐次表示させたいんだよ。だけど、tcp/ipか
udp/ipか、HTTP tunnelingか、RPCかDCOMかの何を使えばいいかで
迷っていたりするんだよ(ワラ。
0904デフォルトの名無しさん
NGNGUDP/IP っていう言い方、あんまし聞かないな・・・
とりあえず TCP でいいんじゃない?
0905905
NGNG通信対戦っぽいソフト作ってるんですが、
HTTPプロキシを通して出来ないかと試してみたら、
POSTが効かなかったり、バッファリングしたりしやがりまして、
なかなか上手くいかないんです。
なんか良い方法をご存じの方いらっしゃらないでしょーか?
1回データをやりとりするたびに
HTTPを繋いだり切ったりするしかないんでしょーか?
0906デフォルトの名無しさん
NGNGとりあえずWin+cygwin/Winsockを考えているのですが。
0907デフォルトの名無しさん
NGNGOSが高速でも、ネットワーク回線自体の伝送速度で制限を受けるので、意味ないです。
10Mbps の回線では、どんなOSを使っても 10Mbps しか出ないのです。
・・・それとも、ネットワークとは関係なく、単にCPUパワーを得たいだけ?
0908デフォルトの名無しさん
NGNGWindows2000Server+Winsock2+完了I/Oポートを使って組むやり方が
Windowsだと最もパフォーマンスが高い。
マルチプロセッサ対応もさせやすいのでCPU毎に得意な処理を分散可能だ。
ただしライセンス料もべらぼうに高い(w
レス数が900を超えています。1000を超えると表示できなくなるよ。