[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 12/01 01:46 / Filesize : 115 KB / Number-of Response : 565
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 03:43:08 ]
主にソケットに関しての質疑応答スレッドです。

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

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

前スレ
ネットワークプログラミング相談室 Port24
pc12.2ch.net/test/read.cgi/tech/1246895188/
関連スレ
ネットワークプログラミング雑談
pc12.2ch.net/test/read.cgi/tech/1235800707/
Java ネットワークプログラミング 【教えて!】
pc12.2ch.net/test/read.cgi/tech/1086238859/

159 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:25:49 ]
レス有難うございます。

>>158
www.orca.med.or.jp/receipt/tec/dev/soft/claim.rhtml

の(2)によると、送信した側がsocket closeと書いてあるようですので
こちら側(送信側)がCloseしなければいけないのかなと考えています。

160 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:38:25 ]
closeする前にサーバのACK/NAK応答は受信したのかと

161 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:41:31 ]
言っとくがTCPじゃなくてアプリレイヤーの話だぞ?
>>159のシーケンスをちゃんと嫁

162 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:45:18 ]
見落としてるだけだろ
アホとしか

163 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:01:16 ]
>>159
これだとCloseイベントでcloseしたほうがいいかもしれない。
>>155のように

164 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:32:37 ]
closeしなくてもほっときゃ切れるだろ

165 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 01:37:03 ]
socketは全二重
送る側だけまずshutdown
読む側でEOFまで全て読み終わるのを確認してからclose
これはちゃんとやって

166 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 09:17:58 ]
皆様何度も返信してくださって
厳しいながらもありがたい限りです

>>160
そちらの受信は確認しております。
>>161
アプリレイヤーとTCPの違いがまだよく分かっていないのですが、
そこの部分は調べてみます
>>163
ちょっとその手法でやってみます
>>165
shutdownはwinsockメソッドにはなく、
www.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/winsock/
で見ました。全文読んでいないのでなんともいえませんが、
まだ使い方が不明なので調査してみます。

167 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 23:40:54 ]
>>166
> shutdownはwinsockメソッドにはなく、

何言ってるかわからない。
書く側だけまずshutdownしろってのは、
winsockのFAQの初心者向け項目に書いてあること。



168 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 23:47:48 ]
良くこれで仕事が出来るな・・・

169 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 00:04:43 ]
とりあえずWiresharkで
双方の FIN → FIN,ACK → ACK のどこまで出てるか見てみたら?

170 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 05:43:11 ]
サーバの開発元に質問するほうもアレだが、ありえないと回答するのもひどいな。
お互い良くそれでプログラマって言えるよな。

171 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 18:13:12 ]
IdBaseComponent,
IdComponent,
IdTCPConnection,
IdTCPClient,
IdHTTP
IdException

このへんのコンポーネントってIndyですか?

172 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 18:18:28 ]
Indyですね

173 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 18:27:53 ]
>>172
ありがとう

IdってIndyって意味だったのか
コンポーネントないからビルドできねぇ

174 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 23:35:50 ]
>>153
> CLOSE_WAITになったまま消えてくれません。
サーバ側のCLOSE_WAITは全く関係ない。お前の作ったクライアントがダメなだけ。

> 何か、ありがちなミスなどありましたらご指摘よろしくお願いします。
自分のバグを他人の所為だと思いたがる態度が、初心者にありがちな重大なミス。

bindしてるだろ。

175 名前:114 mailto:sage [2009/11/12(木) 01:33:52 ]
>>120
やっぱ無理だよな、ありがとう

>>118
相手がわかってればいいんだけどねぇ

176 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 07:44:31 ]
>>128
それじゃ3-wayハンドシェイクが成立しないだろ。可能だと主張するなら動作するサンプルコードを。

177 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 08:50:27 ]
>>176
RFC に双方 connect() 時のシーケンス載ってるが?



178 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 09:01:03 ]
>>176
RFC793 の figure 8 だけど、rfc1122 でその図の間違
いが訂正されてる。

  4.2.2.10  Simultaneous Open Attempts: RFC-793 Section 3.4, page
            32

            There is an error in Figure 8: the packet on line 7 should
            be identical to the packet on line 5.

            A TCP MUST support simultaneous open attempts.

            DISCUSSION:
                 It sometimes surprises implementors that if two
                 applications attempt to simultaneously connect to each
                 other, only one connection is generated instead of two.
                 This was an intentional design decision; don't try to
                 "fix" it.



179 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 09:25:14 ]
> This was an intentional design decision; don't try to "fix" it.
うわっ、強引。決めたんだからなおすな。

180 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 09:37:37 ]
>>179
違う違う。「実装者は双方同時 open の結果として一つ
しかコネクションが出来ないことに驚くかもしれないが、
これはそうなるように『設計』されているので直そうと
するな」ということ。

181 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 10:28:32 ]
コネクションが2つでなく1つなのは「そのように決めたんだからなおすな」って事でしょ。
なんで、そのように決めたんだろう。

という事は置いておいて、これは同時にconnectが発生した(例外的な)場合に関しての
規定であって、>>118が言ってるような狙ってできるってもんじゃないよね。

182 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 10:29:35 ]
>>174
>自分のバグを他人の所為だと思いたがる態度が、初心者にありがちな重大なミス

逆に自分のせいだと思って散々調べたら自分のせいじゃ無かったってのもよくある
まずは切り分けが大事と思い知らされた

183 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 10:44:42 ]
>>181
> 狙ってできるってもんじゃない

普通は RST が返るからってこと?

184 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 11:05:05 ]
>>181
>なんで、そのように決めたんだろう。
同じIPアドレス、ポート番号のペアを持つコネクション
は同時に複数存在できませんから。

185 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 11:18:53 ]
一方のコネクションが確立した後では、1本のコネクションにはならないでしょ。

186 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 11:22:01 ]
>>184
なるほど、接続するという選択肢を取るならそのように決めるしかないわけか。
接続しないという選択肢もあったわけだけど、そっちは採用しなかったと。

187 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 22:30:35 ]
双方がwell knonw portになってから接続を開始しているわけだから、
四つ組みが決定している。一つの接続になるのが、設計上当然の帰結。

>>183
いや再送されたのと区別がつかない。
(IPタイムスタンプオプションとかない限り)
それに普通のOSではREUSEADDRしたら、
前のは無効になる。



188 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 10:31:37 ]
よくわからないレベルで仕事って確実に地雷だなw

189 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 11:26:24 ]
結局サンプルコードはまだ?まさか>>128じゃないよね

190 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 12:06:33 ]
RFCだけ読んで「キリッ」って奴がいかに多いか分かるな
実際のコーディングはまったくできないと。

191 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 12:24:58 ]
自分が仕事出来ないのを棚に上げて人のせいにする奴もいるしな

192 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 14:55:17 ]
rfcも実際のコード実装例を描いてくれればいいのだがな。
そういうサイト作ると需要有るのか?

193 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 15:25:53 ]
>>189
> まさか>>128じゃないよね

>>128 で何か不足してる?

TCP/IP の同時 open は、よくある TCP/IP の状態遷移
図で通常サーバ側とクライアント側で違う経路を通ると
ころを両方ともクライアント側の遷移を通るんだから
>>128 であってる。

スティーブンス本のどれかで実際のプログラムと実行例
が載ってたよ。但し、双方の SYN が交差する位には充
分に遅い経路を使う必要があったと思う。

194 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 16:24:19 ]
>>193
listenしなくて良いのか?

195 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 16:35:49 ]
>>194
> listenしなくて良いのか?

listen したら駄目なんだけど?

196 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 16:48:04 ]
ほい、スティーブンス本での同時 open の話と実行例。

books.google.com/books?id=-btNds68w84C&pg=PA251

上で使われてる sock プログラムのソースコード。

www.icir.org/christian/sock.html

listen() を呼び出している servopen() は -s オプショ
ンが無いと実行されないけど上の例では -s ついてない
でしょ。

197 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:43:24 ]
cygwinでsockコマンドコンパイルしてlocalhostでやってみたけど、
確かに同時に実行するとconnect成功するね

・・・同時に実行しなければ繋がらないってのは、ちょっと面白いな



198 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 17:23:34 ]
遂にgoogle booksを参照する時代になったか。

199 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 17:31:32 ]
結局、元質問(>>114)を実現する事はsocketプログラミングの範囲ではできないという結論だね。

200 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 18:08:03 ]
できるだろ。釣りかよw

201 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 18:23:33 ]
listenの実装を自分で書き換えればいいだろ

202 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 00:05:59 ]
>>200
動作するサンプルを。

203 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 01:21:09 ]
>>201
socket.h内のSOMAXCONNを1にしたらひどぅい目に遭いましたw
実装の書き換えまで手を出すのは正直無理ぽですね。

204 名前:デフォルトの名無しさん [2009/11/16(月) 04:45:47 ]
ttp://x68000.q-e-d.net/~68user/net/c-http-1.html
このページを参考に1回connectに成功したらaspxファイルのヘッダとボディのデータを
分けて要求するプログラムを作ったのですがボディのデータを要求するとコネクションが切断されているのかread関数が0を返します。
close関数を使っていなくても1回データを要求したら切断されてしまうものなのでしょうか。ソースは次のレスに記載します。


205 名前:デフォルトの名無しさん [2009/11/16(月) 04:48:30 ]
char path[100],buf[1000],host[]="www.nurupo.jp";
struct hostent *servhost;struct sockaddr_in server;struct servent *service;int s,read_size;

servhost = gethostbyname(host);bzero(&server,sizeof(server));server.sin_family = AF_INET;
bcopy(servhost->h_addr,&server.sin_addr,servhost->h_length);server.sin_port = htons(80);
s = socket(AF_INET,SOCK_STREAM,0);connect(s,(struct sockaddr *)&server,sizeof(server))

sprintf(path,"HEAD /gga.aspx HTTP/1.0\r\n\r\n");
write(s,path,sizeof(path));
while(1){
read_size = re ad(s,buf,sizeof(buf));
if(read_size > 0){write(1,buf,sizeof(buf));}
else{
break;}}

sprintf(path,"POST /gga.aspx HTTP/1.0\r\nContent-Length: 10\r\n\r\nnurupo=gga\r\n\r\n");
write(s,path,sizeof(path));
while(1){
read_size = read(s,buf,sizeof(buf));
if(read_size > 0){write(1,buf,sizeof(buf));}
else{break;}}
close(s);

206 名前:デフォルトの名無しさん [2009/11/16(月) 05:00:41 ]
>>204>>205です。
if(read_size > 0){write(1,buf,size_of(buf))}
の行のsize_of(buf)はread_sizeでした。
すいません…

207 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 05:42:52 ]
HTTP/1.0
RFC1945

1.1は2616



208 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 09:05:10 ]
>>204-205
HTTP/1.0はそのように決められている。
HTTP/1.1ではPersistent Connectionsというのがあるが、使い方はかなり難しい。

209 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 09:17:41 ]
別に難しくは無いさ。
リクエストとレスポンスを交互に繰り返すだけであれば。

終端だって、どうやって判断すればよいかちゃんとRFCに書いてある。
chunkの読み出しも、そのまま実装するだけ。

210 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 11:04:36 ]
嘘つきサーバが多いから難しい。

211 名前:デフォルトの名無しさん [2009/11/17(火) 02:24:14 ]
テスト

212 名前:デフォルトの名無しさん [2009/11/17(火) 15:47:40 ]
>>204です。
お返事ありがとうございます。
RFC2616やグーグルしたところ、HTTP/1.1はHost: URLを記述しなければいけないとのことだったので
記述し、2回目のデータ要求ではConnection: Closeを記述したところ2回、データを要求することが出来ました。
2回目はBad Requestになってしまいますが。。
RFCを見て、少しやる気をなくしてしまいましたが
出来たらネットワークの勉強に励み、この問題をいつかは解決したいと思います。
ありがとうございました。

213 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 00:14:01 ]
UDPのブロードキャストについて質問です
pythonとCで書いてます。(例はpythonで書きます)
ブロードキャストでデータを送りたいのですが、
setsockoptでSO_BROADCASTを有効にし、
# pythonの例
sock.sendto( data, ( "255.255.255.255", 1234 ) )
としても、受信側で受信できません。
# 受信側のIPアドレスは192.168.11.4
sock.sendto( data, ( "192.168.11.4", 1234 ) )
として、ユニキャストだと受信できることを確認しています。
環境はlinuxです。
ブロードキャストアドレスとして255.255.255.255を使うのは間違ってますか?

214 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 03:25:47 ]
それは自分の所属するサブネットの中なの?外なの?

215 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 06:15:52 ]
>ブロードキャストアドレスとして255.255.255.255を使うのは間違ってますか?

はい

216 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 07:06:20 ]
rootにならないとできないとかそういうのもあるよね。

217 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 08:36:47 ]
ブロードキャストアドレスとして192.168.11.255と設定してあるだろ。
それ使えよ。



218 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 13:28:28 ]
基本的にネットの負荷が上がるのでブロードキャスト非推奨。

つ ブロードキャストストーム
輻輳を検知するとポート綴じちゃうスイッチも有るよ。

219 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 18:32:47 ]
>>214
自サブネット内です。
>>215
はい
ありがとうございます
>>216
rootになっても変わりませんでした。
>>217
確かに/24で切ってるので、192.168.11.255も試したのですが変わりませんでした。

ハード的におかしいのかと思い、
192.168.11.4を持つマシン上で、サーバとクライアントを動かしたのですが、
結局受信しませんでした。
wiresharkでみるとパケットは観測されてたのですが・・・

220 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 18:44:37 ]
promiscus

221 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 19:02:55 ]
× promiscus
○ promiscuous

222 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:24:41 ]
>>219
受信側はどうバインドしてるの? 例えば'192.168.11.4’にバインドしてたらそのアドレスへのユニキャストしか受信出来ない。 ブロードキャストも受け取りたいならアドレスは'' (空文字列)でバインドしなければだめ。


223 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:20:27 ]
空文字列?
192.168.11.255にバインドするべきじゃないの?

224 名前:デフォルトの名無しさん [2009/11/21(土) 19:21:12 ]
どうみても 0.0.0.0 にバインドです本当にありがとうございました

225 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:39:22 ]
まったく知識がないんだがどこから手をつければいいのか教えろカスども

226 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:50:51 ]
.255なんて使うなよw

227 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:56:40 ]
まずお前が何をしたいのか教えろよカスが



228 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:57:53 ]
SEXしたい;;

229 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 20:06:44 ]
おまえら!

N88ベーシックの時代を思い出せ!
使ってるだけじゃだめなんだよ!
利用者全員がプログラマーにならなきゃ世の中は良くならない!
そうだろうみんな!!


230 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 20:07:39 ]
食いっぱぐれます

231 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 22:21:39 ]
せんせー
IPアドレスからgethostbyaddrでホスト名とってくるプログラムをVC++(まあなんでも出来るが)で組んだのだけれど、
もし取ってこれなかった場合
>初回の例外が発生しました: 0x000006BA: RPC サーバーを利用できません。
みたいなのが出力パネルに無視して平気?
一応host名がNULLだった時の退避路はあるし、エラーでプログラムが止まるわけじゃないんだけど
なんかわざわざ一回づつ排出するもんだから気になって

232 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 23:24:51 ]
try catch

233 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 02:37:25 ]
これかな
support.microsoft.com/default.aspx?scid=kb;en-us;105675

234 名前:デフォルトの名無しさん [2009/11/24(火) 19:49:11 ]
ソケット生成してbindした時点で、データが送られてくると
受信はされるのでしょうか?
そこから、recvformで取り出すといった感じなのでしょうか?

データを一定間隔で送信し、送信した結果複数の個所からデータが返ってくる
とした場合、最初に返ってきたデータだけをデータとして取り込みたいのですが
こういった場合、どうするのが最適でしょうか?

235 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 20:32:30 ]
bindってよく考えたら、0.0.0.0でbindしておけば
自分のIPが192.168.11.4でも recvfromで192.168.11.100 宛のデータも受信できるのでしょうか?
(ポート等は同じで、ARPで関連づけておくとして)

236 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 20:44:28 ]
promiscuous

237 名前:デフォルトの名無しさん [2009/11/24(火) 21:35:41 ]
promiscuous は関係ない



238 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 21:42:51 ]
それより質問の仕方が悪い

239 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 22:43:16 ]
通常のモードだと自分のMAC宛のパケットしか受信できない

240 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 22:56:11 ]
>>239
ARPテーブル操作して、自分のmac向けに別のIPを関連づけたら届きますよね
そこで0.0.0.0をbindしておけば自分の今のIPとは違うデータまで受信できるということでしょうか?

241 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 23:30:36 ]
>>240
MAC判別はネットワークチップの機能だよ

242 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 23:37:24 ]
>>241
すみません、よくわかってないのですが
MAC判別がどう関係あるのでしょうか?
宛先mac自体は、本来の宛先macをarpテーブルで指定してやりますよね

243 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 23:42:42 ]
送信する相手のARPテーブルを操作するって事か

それが受信できるかどうかはIP層の実装仕様次第じゃないのか?
普通は出来ないと思うが・・・

244 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 23:51:53 ]
変なパケットは捨てるのが基本

245 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 00:00:49 ]
実装仕様とはNICに依存するのでしょうか?

でもmacアドレスはあってる、IP層のIPも送信元がARPテーブル操作してあってる
から届くはずだとはおもうんですが

246 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 00:52:43 ]
> ARPテーブル操作して、
どこのマシンのARPテーブルいじる気だよ。毒入りarp投げるのか?
オレの管理下で発見したら接続禁止だぞ。上司が土下座しなけりゃつなげさせない。

> そこで0.0.0.0をbindしておけば自分の今のIPとは違うデータまで受信できるということでしょうか?
IPってゆうな。クズ。

例え送信元のARPテーブル操作してパケットが届いたとしても出来ない。
0.0.0.0は自マシンのアドレスに対するワイルドカードだからだ。

もう一回言っておく。IPってゆうな。クズ。

247 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 01:18:53 ]
受信したいマシンが 192.168.11.100 というIPを持っていないから無理
RawIPでも使え



248 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 01:28:28 ]
IPってゆうな。クズ。

249 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 01:37:02 ]
単にアドレスって言うのもハンパだろ?

250 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 01:45:49 ]
IPアドレスを省略するときは単に「アドレス」って言う
IPは知的財産の省略形として稀に使うぐらい

251 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 02:01:57 ]
ネット盗聴ソフトか不正アクセスでもするソフトでも作ってるのかw

252 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 03:27:17 ]
>>235
環境による
>>240
環境による


253 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 06:53:48 ]
promiscuous

254 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 07:32:45 ]
>>246 >>247

>>252
さんがいうには、環境によってはできるとのことですが

255 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 07:33:57 ]
俺の自作スタックなら何でも出来る

256 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 08:02:59 ]
>>252
かなりめずらしい環境でないか? 組み込み系のマイナーな
スタックとか?

257 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 17:54:55 ]
WinSockのWSAAsyncSelectについて質問です。

今まで使い方を間違えていたらしく、あちこちのサンプルでは

(1)
リスニングソケットにはFD_ACCEPTを設定し
WSAAsyncSelect(socketListen, hWnd, (WM_APP + 1), FD_ACCEPT))

(2)
case FD_ACCEPT内で
SOCKET socket = accept(m_sckListen, &addr, &nLength);
WSAAsyncSelect(socket, hWnd, (WM_APP + 1), FD_READ | FD_CLOSE)

と、個別にFD_READやらFD_CLOSEを設定するのが正解のようです。

今まで私は(1)で FD_ACCEPT | FD_READ | FD_CLOSE と設定し、(2)ではWSAAsyncSelect自体を呼び出していませんでした。
ですが、この状態でもsocket側に通信データが送られてきた際に、きちんとwParam == socketな状態でWD_READが呼び出されていました。

これは、正規の仕様に乗っ取った挙動なのでしょうか?
例えば「リスニングソケットにFD_READなどを設定しておくと、そのリスニングソケットでacceptされたソケット全部にFD_READが自動的にセットされる」とかでしょうか?




258 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 18:11:24 ]
asyncも分かってないしselectも分かってないな

259 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 20:36:58 ]
ソケット生成してbindした時点で、データが送られてくると
受信はされるのでしょうか?
そこから、recvformで取り出すといった感じなのでしょうか?

データを一定間隔で送信し、送信した結果複数の個所からデータが返ってくる
とした場合、最初に返ってきたデータだけをデータとして取り込みたいのですが
こういった場合、どうするのが最適でしょうか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<115KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef