ネットワークプログラミング相談室
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG0797デフォルトの名無しさん
NGNGbind()のエラーだったらTIME_WAITによるAddress already in useの可能性大。
きみも>>794が紹介してくれたとこに一度行ってきなさい。勉強になるから。
0798デフォルトの名無しさん
NGNGありがとうございます
0799
NGNG複数ユーザ毎のメールを一括でPerl等に出力し、
Perlで転送先へ仕分けして再配送したいのですが、
エンベローブの宛先アドレスや送信元アドレスをPerlへパラメータとして与えたいと
思っています。(MAIL From: [email protected] や RCPT To: [email protected]の情報)
sendmail.defでそれらしい設定を探しましたが、
以下のようなPOPDOMが最も近そうでした。
PSEUDO_POP_DOMAIN=yes/no
POPDOM_MAILER_PATH='/usr/sbin/lmail'
POPDOM_MAILER_FLAG=$PROG_MAILER_FLAG
POPDOM_MAILER_ARGS='lmail -d $h $u'
POPDOM_MAILER_MAXSIZE=100000
POPDOM_MAILER_MAXLINE=
しかし、上記の設定では、$uは宛先の@前のユーザ名のみなので、
@以降のドメイン名部分が取得できません。
また、送信元情報の取得もできません。
そういった情報は固定の変数に設定されているのでしょうか?($〜)
それと、ACCEPT_ADDRSで*.hoge.comという形式でドメイン受信の設定は
可能でしょうか。
TLDは手動設定でいいのですが、サブドメインの登録は自動化したいので、
DNSの*指定のように全サブドメイン対象の設定にしたいと思っています。
0800800
NGNG800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800 800
0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNG基本的にはYes
しかし一つの代表ポートに複数の接続要求を出すことは出来る
TCPのテストプログラムを作って接続語の相手先のポート番号を確認すれば意味は分かる
0803デフォルトの名無しさん
NGNGひとつ不可解な現象にあって困ってます。
recvで受信するときに、改行文字(\r\n)が送られて来ても、
戻り値で2が帰ってくると思ってたのですが、1なのです。
どうしてでしょうか?
ちなみに、受信バッファを監視していると確実に\r\nが書き込まれてました。
0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNG質問内容がいまいちわからないですが、、、
socket層には改行文字なんて概念はありません
純粋にバイナリを送受信してるだけです
送信元が\r\nを送ったんなら、\r\nが届くだろうし、
\nだけを送ったんなら\nだけが届くでしょう
0806デフォルトの名無しさん
NGNG返答どうもです。
えっと、症状なのですが、確実に\r\nは送られて来てます。
しかし、recvの戻り値が1なので、単純に戻り値を元にバッファを連結すると
\nが上書きされてしまうのです。
0807デフォルトの名無しさん
NGNG勘違いしてない?
0808デフォルトの名無しさん
NGNGEnterを押して改行だけ送信。
char buf[4096];
memset(buf,0,sizeof buf);
len = recv(c, buf, sizeof buf, 0);
accept後に上記のソースで受信すると、
len = 1;
buf[0] = '\r';
buf[1] = '\n';
こういう状態になってます。
len = 2なら納得できるのですが・・・
と、いう話です。
0809デフォルトの名無しさん
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結果をグラフで逐次表示したいんですが何か良い方法を
教えて下さい。
■ このスレッドは過去ログ倉庫に格納されています