SCTPどーよ
10 :
デフォルトの名無しさん :2009/10/14(水) 21:10:47
Apacheの発見されていない脆弱性を教えてください><
発見してしまった。
発見されていないのだから教える事はできない。
馬鹿に使われる、という潜在的な脆弱性は ローカルでしか発見し得ないかも
実際大人になってからはじめてわかったことはいっぱいある その殆どはわかったときには既に手遅れだったものばかりだ
高校生のうちにセックスしまくっとけとかなw
UDPで300BYTE程度のデータを送信しようとした所、送信できませんでした 1000byteなら送信できたのですが3000byteを送信しようとすると何か設定が必要なのでしょうか?
Windows の UDP パケット サイズの最大値は 1280 バイトが既定値 これ関係ある?
1280バイトと1281バイトで実験してみればいいだろ
18は17とは別人だお UDPとか使わないから俺は実験しないお
エラーが起きた時はerrnoを調べるように頭の構造を設定する必要がある。
udpは親切に再送してくれないからな。受け取れない終わり出し。
つまり送信は性交していて受信が失敗してるわけですねわかります
否認したわけですね
25 :
17 :2009/10/21(水) 07:50:19
3000byteのときは送信が成功しません。2000byteででもです。 1パケット以下なら送信が成功するのですが、そういう設定する オプションってあるのでしょうか?
フラグメント有効なら通りそうな気もするが・・・
釣り針があまりにでかすぎる
ソケットプログラムを書いていたらある時ものすごいエラーが出るようになり、 原因を探っていたらどうもヘッダファイルのインクルード順序によって出るという結論に達しました おおよそでも結構ですので、こういう順序でインクルードするとエラーが出にくいという方針などはあるのでしょうか?
要るものからインクルードするとエラーが出にくい
sys/types.hを最初に、それ以外はどうでもいい。
31 :
デフォルトの名無しさん :2009/10/22(木) 00:20:32
>>26 フラグメント有効ってどうすればよいのでしょうか?
カードの問題?
フラグメントはDoSに利用されやすいこともあって、 オフにしているところも結構ある。 頼らずに分割して送れ。
単にMTU越えてるから送れないってことじゃないの?
>>32 IP だとそうだけど, UDP のリアセンブルは IP とは別問題じゃないか?
とはいえ, IP フラグメント捨てられたら UDP がこけるのも事実だが……
そもそも, 元ネタが環境を書いてないのがよくない
殆どのバグは本人が問題無いと思っている場所にこそ存在する
>>34 > UDP のリアセンブル
何のことを言っているの?
UDPで1パケ以上送ろうとするとフラグメント化されるけど、それがされなくてデータ自体送れなくなってるってことか フラグメント化のオンオフってどうやるんだったかな
分からない奴は加わってくるな
>>36 IPv6 は MTU ディスカバリー使って, 途中経路でフラグメント化されない形で
送信できるけど, v4 にはそうゆう機能がないのでフラグメント化される可能性
がある.
UDP は MTU 以上のデータグラムを送ろうとすると, 複数の IP パケットに分割して
送信される.
IP のフラグメントをリアセンブルするのと, UDP のデータグラムを複数の
IP パケットからリアセンブルするのは別の話だって言ってるんじゃないか
>>39 ん?
Path MTU DiscoveryはIPv4にだってあるだろ?
v6は必須だよね。
>>39 フラグメンテイションもリアセンブルも、
IP層で行われるのであって、上の層が何かは関係ない。
tcpdumpやfirewallみたいに層縦断する奴等は気にする必要があるが。
どっかのバカNEが「ICMP全部止めるのがセキュリティ」と妄信してるからなあ。
それじゃpingが通らんがなw
ping用のポートを用意
www.ntt.co.jpとか
>>44 The Internetにつながってるサーバはecho返さないようになってるの多くね?
48 :
デフォルトの名無しさん :2009/10/22(木) 23:07:44
結局、UDPで送信してもフラグメント化されないため送信されてないって話だろ
う、うん……(´・ω・`)
50 :
デフォルトの名無しさん :2009/10/24(土) 14:23:18
listenの第2引数の意味がよくわからん 何にすればいいの
51 :
デフォルトの名無しさん :2009/10/24(土) 14:39:42
0-1
>>50 サーバ側がaccept(2)で接続確立するまで、
サーバ側に既に到着し待たされている接続要求をいくつ持てるか?
>>51 少なすぎて話にならない。
なるほどありがとう
1はバックログ数1というわけではないんだな。これが。
それはOSによる。 例えばLinuxは最小が8、最大はsysctl.max_syn_backlog 2の階乗にラウンドされる。
反論するなら、1がバックログ数1であるものを例示して反論してくれたまえ。
58 :
デフォルトの名無しさん :2009/10/25(日) 00:07:08
パケットのフラグメント化を許可する方法を教えてください
経路上の中継器の管理者にフラグメントされたパケットを落とさないように依頼する。
60 :
デフォルトの名無しさん :2009/10/25(日) 13:04:09
listenソケットて閉じちゃいけないの?問題発生したんだが
どんな問題か書け
セレクト使った場合 相手がクローズしたかどうかを知るにはどうすればいいの?
s.eof()
>>59 中継器は使用せず直接LANケーブルで送信受信側をつないでます
どうやらパケット自体送出できないみたいなのです
フラグメント化が必要なデータだと
PS3かなにかのメッセージか? 動いてるなら気にスンナ
いえ、送出できてないので動かずです
>>58 , 59
何がしたくて, 何をやったらどうなってるのよ?
どう言う意味でパケットのフラグメントを使ってるのよ?
IP フラグメントってのは, 下の例のような構成で,
中継が MTU=500 のネットに会わせて, 勝手に IP パケットを分割する
時の話だぞ
端点 -> MTU=1000 のネット -> 中継 -> MTU=500 のネット -> 端点
UDP で MTU 以上のデータを送信したいとかって話?
69 :
デフォルトの名無しさん :2009/10/26(月) 15:50:31
selectって条件が揃うまで値を返さないんだよね? そうなるとrecvとaccsept用に2つスレッド作らないといけないのか?
recv用とaccept用のディスクリプタを両方セットしとけば、いずれか一方が読み込み可能になれば返ってくる スレッドは1つでok
UDPソケット作る時に宛先アドレスを指定して作った場合も sendto,sendmsgを使うなら宛先は指定しなければならないんでしょうか?
> UDPソケット作る時に宛先アドレスを指定して作った 作り方教えて
あー 勘違いしてました
UDPでもconnectしとけばsend/recv使えるよ
これからネットワークプログラムを開発する場合 今のトレンドのプログラム言語はなんでしょうか
Rubyだ
Javaだ
トレンドなんか気にしているようではいけない
>>68 すみません、UDPでMTU以上のデータを送りたいということです。
分かりにくくて申し訳ないです
>>79 OSとか環境とか情報はないのか?
sendto で宛先指定すりゃ普通に出ていかないか?
送れてない時ってエラー帰ってないか?
どうしても send が使いたいんだったら
>>74 もっとも, 組み込み用のスタックとかだと UDP の
connect は, 実装してないスタックもあるらしいが…
なんでRFCも読まずにネットワークプログラムしてる奴がゴロゴロいるんだ?
83 :
デフォルトの名無しさん :2009/10/27(火) 23:38:53
ICMP って 「アイコンプ」って読んだら変かなあ
84 :
デフォルトの名無しさん :2009/10/27(火) 23:54:47
hen
SNMPをスヌンプって読む人はいるよ 漏れは読まないけど
WSDLはうぃずどぅるだけどな
リフラグメント前提のパケットを大量に流してあげると、フラグメントしてくれる親切なルータにDoS出来てしまう気がした。これってセキュリティホールじゃ? ICMP echoは捨ててもいいと思うけどね。ルータで捨てた時に送って来るICMPは捨てると良くないことが起きそうだが。
89 :
デフォルトの名無しさん :2009/11/01(日) 21:35:44
>>80 UDPのconnectなんてあるんですね。。でも、connectすりゃ、send,recv使えるって
しなくてもmtu以下のサイズなら使えます。そういうことではないのでしょうか?
OSがUNIXでもwindowsでもないからおくれないのかなぁ
connectしなかったらsendは使えない だって宛先不明 sendtoやsendmsgは使える connectしたらsendも使える
92 :
デフォルトの名無しさん :2009/11/01(日) 23:21:35
複数の接続を受けるサーバーを作りたいんだけど 人数が増えるたびrecvの回数増やすにはどうすればいいんだ?
recvの回数増やすというのはよくわからないが 受け付けた接続ごとに別々のスレッドを立ち上げるか selectやpoll等を使ってひとつのスレッドですべての接続を捌くか 好きなほうを選べ
スレッドで処理してる間に、パケット届くと取りこぼしそうだw
はあ?
96 :
デフォルトの名無しさん :2009/11/02(月) 03:33:19
UDPパケットを取りこぼしなく取り込みたいのですが なにかいい方法ありませんか?
あきらめれ
>>96 取りこぼさないのは無理なので、取りこぼしたことを検出して回復を図る
取りこぼしたくなければ素直にTCP使っとけ UDPにするなら取りこぼしてもいいようにプログラム側を設計しろ っていうのが定型文的な解答
決してしてはならないのは 「Ethernat直結でしか使わないからUDPでも取りこぼしなんて起きないだろう」 などと考えること。これをやってハマる初心者が意外に多くて困る。
同時にパケット発射すれば簡単に消えるしな。
102 :
デフォルトの名無しさん :2009/11/04(水) 18:16:51
マルチスレッド鯖製作中なんだけど 誰かからデータ受信したら送信してきた相手以外の クライアントにそのデータを送るにはどうしたらいいの?
言葉どおりにやればいい
受信したことを別スレッドに通知するにはどうすればいいの?
通知を受け取りたい各スレッドごとにキューのようなデータ構造を何か用意する 通知を送りたいスレッドは宛先スレッドのキューに送りたいデータを置く 通知を受け取りたいスレッドはヒマなときに自分のキューを見てデータが来ていたら取り出す OSによってはそういったメッセージキューの機能をすでに持っていることもある 自分で作る場合はスレッドセーフにすることを忘れずに
難しいこと考えないで、 受信したスレッドが全部のソケットに書けばいい 排他が気になるなら、ひとつmutexをロックしておけばいい
>>102 その質問そのものをコードにしてみればいいじゃないか(受け取ったデータを他に転送)
リソース競合には気をつける必要があるけど処理自体はおまいの質問そのものだぞ
>>102 何か効率の良い方法とか、そういうライブラリの存在を訊きたいのかもしれないが
そのレベルだとどちらの意味でもがんばって送信しやがれってレベルでしかないぞ。
>>106 スレッドに値渡ししたら次のアクセプトで変数上書きしてて
受信したスレッドは、送信する相手のソケットを知ることができないんだ
だから他のスレッドに通知してそのスレッドから送信させようかなと
グローバルの配列で管理しておかないとだめってことか
配列というか上に書いてある通りキューだろ (キューの実装は配列でもいいけれど)
でもそれってrecvをノンブロックのしないといけないんでしょ?
そんなこと関係ない。
どういうこと ノンブロックで受信とそのキューとやらのチェックをポーリングさせるってことじゃないのか
1接続しか許さないサーバプログラムを作る方法を教えてくだちい listen()でバックログを1にしてaccept()した瞬間にlistenソケット閉じて ってやればいいかと思ったけど acceptする前にどんどん接続を受け付けやがる
接続待ち受けのソケットでそのまま通信すればいいんじゃね?
システムコールに惑わされずにまずRFC読め
>>114 無理なOSは無理なんで諦めてください。
あらかじめ双方のポート番号が分かっているなら
双方からconnectって手があるけど。
>>113 お前がそう言う実装に拘る理由こそ、どういうこと?
>>114 キミのやりたい事は完璧にはできない。
バックログを0にして、acceptしたらlistening socketをcloseする。
これでもacceptしてからcloseするまでの間は接続を受け付けてしまう。
>>118 可能なOSを例示してくれ。今まで聞いたことが無いから知りたい。
昔のvxWorks
ポート食いつぶし攻撃か?
マイコンのプロトコルスタックを作ってる最中なのだがちょっと質問。 データ送信したとき全くの正常ならば 相手から返ってくるAcknoledgeNumber=自分が送信したSequenceNumber+TCPデータ長 となる筈なんだろうけど、この相手のACKパケットに入ってるAcknoledgeNumberが和より少ないときってこっちは何をすれば良いんだ? もらったAcknoledgeNumberの分までは正常と見なして続きから送り直せばいいのかね?
>>124 そんなもんは気にせずに window size が 0 になるまで無理やり送りつけるんだ
マイコンに限らず再送バッファの大きさに支配されると思う 再送バッファサイズ<=窓までは送れる
>>126 最後は再送バッファサイズの問題とかスロースタートの問題には
行き当たるんだろうけど、プロトコル的には送ったもん勝だわな
>>122 host1: socket→bind→connect
host2: scoket→bind→connect
TCPの接続開始ハンドシェイクはこういうやり方でも可能。
意味が分からん。 ソースで示して>128
横着しないで RFC 位読め
UDPって「取りこぼし」だけじゃなくて「送りそこね」もあるんだよな
途中で捨てられたも多い。取りこぼしだと届いてるのに拾えなかった感が有るが、そもそも届いてない。
Windowsでネットワークアドレスの違うIPアドレスへ強制的に UDPのパケットを送る方法って無いでしょうか? SetIpNetEntry()で静的arpに登録して送っても駄目みたいでした。 (たぶん送信時に跳ねられている)
arpコマンドで登録すればいいんじゃ?
>>134 SetIpNetEntry()を呼ぶのと、arpコマンド実行は同じ事だと思うけど、
試しにpingとwireshark使ってやってみました。
Destination host unreachable.
と出て、相手には何も届いてないですね。
しかも、Windows7でやると特権がいるとかでエラーになるし、
諦めてブロードキャストで送ることにします。
ftpでファイルを送受信することになりました こっちも相手側もクライアントとサーバになります VC(MFC)でプログラムを作ろうと思いますが どうやって作っていいかわかりません クライアント側はサーバーに接続して ファイルを転送する?イメージがあります。 検索するとCFtpConnectionをつかって作るのがわかりました でもサーバー側ってどうやって作るんでしょうか? どこかにサンプルとかヒントはありませんか?
ファイルが転送できればいいのかFTPプロトコルを実装したいのか
多分ファイル転送ができればいいです プログラムでファイルをリモートのPCに送りたいのと 相手側がいつでもファイルをこちら側に送れるように ftpサーバー機能があればいいです
>>133 違うネットアドレスへ送ろうとする場合、arpはgateway
に対してだよ?routeはどうなってるの?
>>140 ありがとうございます
見てみましたがftpについては見当たりませんでした
ftpサーバとしてftpクライアントの要望にこたえる例とかしりませんか?
サーバなんて既存のやつ使えばいいじゃない サーバもクライアントも作るなら特定のプロトコルにこだわる必要もないだろう
だめだこりゃ
>>142 一応売り物にするのでフリーのは問題ある?のではないかと思ってます
システムに組み込んで売っても問題ないフリーソフトとかありませんか?
>>144 ありがとうございます
参考にサンプル落とし見ようとしたら登録が必要なようですorz
英語はわからなくて…すみません
多少の英語も出来ずにプログラマやってるのかよ
もうRFC959読んで自前で実装しちゃいなよ 日本語訳もあったはずだ
>>145 BSDライセンスのFTPサーバ。FreeBSDのとか。
まあ機能限定で実装すれば自前でも簡単だけど。
>>148 ありがとうございます
ちょっと調べてみます
自分でいろいろ調べてたらXPにもftpサーバがあるみたいなのですが
XPのを使うのとフリーのftpサーバ使うのは全然違う意味ですか?
XP標準にあるならそっちのが楽なのかなぁ?と思ったりしてます
IISはXPのProにはあるけどHomeには無いから気をつけて
初心者極まりない質問で申し訳ないですが、お願いします。 VB6.0のwinsockオブジェクトを用いて、出来合いのサーバ(ORCA_CLAIM)に データを送信するプログラムを作成してます。 ポートとアドレスを指定して送りたいデータを送信し、 ただクローズするだけなのですが、送信後にサーバのステータスが CLOSE_WAITになったまま消えてくれません。 (# netstat -nap localhost などで確認) そうなると再送信してもポートが現在使用されていますと出て、 エラーを返すのでとても困っています。 サーバソフトの製作元にもたずねて見ましたが、そんな現象はありえないと いうお話でしたので、どうもこちら側に決定的な原因があるようです。 状況説明がうまくないようでしたら申し訳ありません。 何か、ありがちなミスなどありましたらご指摘よろしくお願いします。
winsock1.closeはしてるの?
IISに投げてみたけどCLOSE_WAITにはならないよ Option Explicit Private Sub Command1_Click() Winsock1.LocalPort = 0 Winsock1.RemoteHost = "localhost" Winsock1.RemotePort = 80 Winsock1.Connect End Sub Private Sub Winsock1_Close() Winsock1.Close End Sub Private Sub Winsock1_Connect() Winsock1.SendData "GET / HTTP/1.0" & vbCrLf & vbCrLf End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim s As String Winsock1.GetData s MsgBox s End Sub
同じ質問を過去に見たんだが、解決方法忘れてしまった VBスレの人なら知ってる人いるんじゃない?
>>153 です。皆様レスをつけていただいて有難うございます。
>>154 うーん。Winsock1.closeはやっているのですが、反応がないようです。
>>155 すいませんサンプルソースまで書いてもらって、助かります。
私のソースもだいたいそのような感じなのですが、見直してみることにします。
>>156 有力情報有難うございます。
そちらの方にも尋ねてみることにします。
closeする前にサーバのACK/NAK応答は受信したのかと
言っとくがTCPじゃなくてアプリレイヤーの話だぞ?
>>159 のシーケンスをちゃんと嫁
見落としてるだけだろ アホとしか
closeしなくてもほっときゃ切れるだろ
socketは全二重 送る側だけまずshutdown 読む側でEOFまで全て読み終わるのを確認してからclose これはちゃんとやって
>>166 > shutdownはwinsockメソッドにはなく、
何言ってるかわからない。
書く側だけまずshutdownしろってのは、
winsockのFAQの初心者向け項目に書いてあること。
良くこれで仕事が出来るな・・・
とりあえずWiresharkで 双方の FIN → FIN,ACK → ACK のどこまで出てるか見てみたら?
サーバの開発元に質問するほうもアレだが、ありえないと回答するのもひどいな。 お互い良くそれでプログラマって言えるよな。
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP IdException このへんのコンポーネントってIndyですか?
Indyですね
>>172 ありがとう
IdってIndyって意味だったのか
コンポーネントないからビルドできねぇ
>>153 > CLOSE_WAITになったまま消えてくれません。
サーバ側のCLOSE_WAITは全く関係ない。お前の作ったクライアントがダメなだけ。
> 何か、ありがちなミスなどありましたらご指摘よろしくお願いします。
自分のバグを他人の所為だと思いたがる態度が、初心者にありがちな重大なミス。
bindしてるだろ。
175 :
114 :2009/11/12(木) 01:33:52
>>128 それじゃ3-wayハンドシェイクが成立しないだろ。可能だと主張するなら動作するサンプルコードを。
>>176 RFC に双方 connect() 時のシーケンス載ってるが?
>>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.
> This was an intentional design decision; don't try to "fix" it. うわっ、強引。決めたんだからなおすな。
>>179 違う違う。「実装者は双方同時 open の結果として一つ
しかコネクションが出来ないことに驚くかもしれないが、
これはそうなるように『設計』されているので直そうと
するな」ということ。
コネクションが2つでなく1つなのは「そのように決めたんだからなおすな」って事でしょ。
なんで、そのように決めたんだろう。
という事は置いておいて、これは同時にconnectが発生した(例外的な)場合に関しての
規定であって、
>>118 が言ってるような狙ってできるってもんじゃないよね。
>>174 >自分のバグを他人の所為だと思いたがる態度が、初心者にありがちな重大なミス
逆に自分のせいだと思って散々調べたら自分のせいじゃ無かったってのもよくある
まずは切り分けが大事と思い知らされた
>>181 > 狙ってできるってもんじゃない
普通は RST が返るからってこと?
>>181 >なんで、そのように決めたんだろう。
同じIPアドレス、ポート番号のペアを持つコネクション
は同時に複数存在できませんから。
一方のコネクションが確立した後では、1本のコネクションにはならないでしょ。
>>184 なるほど、接続するという選択肢を取るならそのように決めるしかないわけか。
接続しないという選択肢もあったわけだけど、そっちは採用しなかったと。
双方がwell knonw portになってから接続を開始しているわけだから、
四つ組みが決定している。一つの接続になるのが、設計上当然の帰結。
>>183 いや再送されたのと区別がつかない。
(IPタイムスタンプオプションとかない限り)
それに普通のOSではREUSEADDRしたら、
前のは無効になる。
よくわからないレベルで仕事って確実に地雷だなw
結局サンプルコードはまだ?まさか
>>128 じゃないよね
RFCだけ読んで「キリッ」って奴がいかに多いか分かるな 実際のコーディングはまったくできないと。
自分が仕事出来ないのを棚に上げて人のせいにする奴もいるしな
rfcも実際のコード実装例を描いてくれればいいのだがな。 そういうサイト作ると需要有るのか?
>>189 > まさか
>>128 じゃないよね
>>128 で何か不足してる?
TCP/IP の同時 open は、よくある TCP/IP の状態遷移
図で通常サーバ側とクライアント側で違う経路を通ると
ころを両方ともクライアント側の遷移を通るんだから
>>128 であってる。
スティーブンス本のどれかで実際のプログラムと実行例
が載ってたよ。但し、双方の SYN が交差する位には充
分に遅い経路を使う必要があったと思う。
>>194 > listenしなくて良いのか?
listen したら駄目なんだけど?
cygwinでsockコマンドコンパイルしてlocalhostでやってみたけど、 確かに同時に実行するとconnect成功するね ・・・同時に実行しなければ繋がらないってのは、ちょっと面白いな
遂にgoogle booksを参照する時代になったか。
結局、元質問(
>>114 )を実現する事はsocketプログラミングの範囲ではできないという結論だね。
できるだろ。釣りかよw
listenの実装を自分で書き換えればいいだろ
>>201 socket.h内のSOMAXCONNを1にしたらひどぅい目に遭いましたw
実装の書き換えまで手を出すのは正直無理ぽですね。
204 :
デフォルトの名無しさん :2009/11/16(月) 04:45:47
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でした。
すいません…
HTTP/1.0 RFC1945 1.1は2616
>>204-205 HTTP/1.0はそのように決められている。
HTTP/1.1ではPersistent Connectionsというのがあるが、使い方はかなり難しい。
別に難しくは無いさ。 リクエストとレスポンスを交互に繰り返すだけであれば。 終端だって、どうやって判断すればよいかちゃんとRFCに書いてある。 chunkの読み出しも、そのまま実装するだけ。
嘘つきサーバが多いから難しい。
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を見て、少しやる気をなくしてしまいましたが
出来たらネットワークの勉強に励み、この問題をいつかは解決したいと思います。
ありがとうございました。
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を使うのは間違ってますか?
それは自分の所属するサブネットの中なの?外なの?
>ブロードキャストアドレスとして255.255.255.255を使うのは間違ってますか? はい
rootにならないとできないとかそういうのもあるよね。
ブロードキャストアドレスとして192.168.11.255と設定してあるだろ。 それ使えよ。
基本的にネットの負荷が上がるのでブロードキャスト非推奨。 つ ブロードキャストストーム 輻輳を検知するとポート綴じちゃうスイッチも有るよ。
>>214 自サブネット内です。
>>215 はい
ありがとうございます
>>216 rootになっても変わりませんでした。
>>217 確かに/24で切ってるので、192.168.11.255も試したのですが変わりませんでした。
ハード的におかしいのかと思い、
192.168.11.4を持つマシン上で、サーバとクライアントを動かしたのですが、
結局受信しませんでした。
wiresharkでみるとパケットは観測されてたのですが・・・
promiscus
× promiscus ○ promiscuous
>>219 受信側はどうバインドしてるの? 例えば'192.168.11.4’にバインドしてたらそのアドレスへのユニキャストしか受信出来ない。 ブロードキャストも受け取りたいならアドレスは'' (空文字列)でバインドしなければだめ。
空文字列? 192.168.11.255にバインドするべきじゃないの?
224 :
デフォルトの名無しさん :2009/11/21(土) 19:21:12
どうみても 0.0.0.0 にバインドです本当にありがとうございました
まったく知識がないんだがどこから手をつければいいのか教えろカスども
.255なんて使うなよw
まずお前が何をしたいのか教えろよカスが
SEXしたい;;
おまえら! N88ベーシックの時代を思い出せ! 使ってるだけじゃだめなんだよ! 利用者全員がプログラマーにならなきゃ世の中は良くならない! そうだろうみんな!!
食いっぱぐれます
せんせー IPアドレスからgethostbyaddrでホスト名とってくるプログラムをVC++(まあなんでも出来るが)で組んだのだけれど、 もし取ってこれなかった場合 >初回の例外が発生しました: 0x000006BA: RPC サーバーを利用できません。 みたいなのが出力パネルに無視して平気? 一応host名がNULLだった時の退避路はあるし、エラーでプログラムが止まるわけじゃないんだけど なんかわざわざ一回づつ排出するもんだから気になって
try catch
234 :
デフォルトの名無しさん :2009/11/24(火) 19:49:11
ソケット生成してbindした時点で、データが送られてくると 受信はされるのでしょうか? そこから、recvformで取り出すといった感じなのでしょうか? データを一定間隔で送信し、送信した結果複数の個所からデータが返ってくる とした場合、最初に返ってきたデータだけをデータとして取り込みたいのですが こういった場合、どうするのが最適でしょうか?
bindってよく考えたら、0.0.0.0でbindしておけば 自分のIPが192.168.11.4でも recvfromで192.168.11.100 宛のデータも受信できるのでしょうか? (ポート等は同じで、ARPで関連づけておくとして)
promiscuous
237 :
デフォルトの名無しさん :2009/11/24(火) 21:35:41
promiscuous は関係ない
それより質問の仕方が悪い
通常のモードだと自分のMAC宛のパケットしか受信できない
>>239 ARPテーブル操作して、自分のmac向けに別のIPを関連づけたら届きますよね
そこで0.0.0.0をbindしておけば自分の今のIPとは違うデータまで受信できるということでしょうか?
>>240 MAC判別はネットワークチップの機能だよ
>>241 すみません、よくわかってないのですが
MAC判別がどう関係あるのでしょうか?
宛先mac自体は、本来の宛先macをarpテーブルで指定してやりますよね
送信する相手のARPテーブルを操作するって事か それが受信できるかどうかはIP層の実装仕様次第じゃないのか? 普通は出来ないと思うが・・・
変なパケットは捨てるのが基本
実装仕様とはNICに依存するのでしょうか? でもmacアドレスはあってる、IP層のIPも送信元がARPテーブル操作してあってる から届くはずだとはおもうんですが
> ARPテーブル操作して、 どこのマシンのARPテーブルいじる気だよ。毒入りarp投げるのか? オレの管理下で発見したら接続禁止だぞ。上司が土下座しなけりゃつなげさせない。 > そこで0.0.0.0をbindしておけば自分の今のIPとは違うデータまで受信できるということでしょうか? IPってゆうな。クズ。 例え送信元のARPテーブル操作してパケットが届いたとしても出来ない。 0.0.0.0は自マシンのアドレスに対するワイルドカードだからだ。 もう一回言っておく。IPってゆうな。クズ。
受信したいマシンが 192.168.11.100 というIPを持っていないから無理 RawIPでも使え
IPってゆうな。クズ。
単にアドレスって言うのもハンパだろ?
IPアドレスを省略するときは単に「アドレス」って言う IPは知的財産の省略形として稀に使うぐらい
ネット盗聴ソフトか不正アクセスでもするソフトでも作ってるのかw
promiscuous
俺の自作スタックなら何でも出来る
>>252 かなりめずらしい環境でないか? 組み込み系のマイナーな
スタックとか?
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が自動的にセットされる」とかでしょうか?
asyncも分かってないしselectも分かってないな
ソケット生成してbindした時点で、データが送られてくると 受信はされるのでしょうか? そこから、recvformで取り出すといった感じなのでしょうか? データを一定間隔で送信し、送信した結果複数の個所からデータが返ってくる とした場合、最初に返ってきたデータだけをデータとして取り込みたいのですが こういった場合、どうするのが最適でしょうか?
スタックって自作できるのでしょうか? スタックを自作すれば、L1レベルから入ってきたデータを好きなように取り込めるのでしょうか?
IEの仕様書はどこにありますか MicroSoftのサイトの情報見ても全然かゆいところに手が届かない
>>259 TCPだとそうだね。acceptしてからだけど。
他のは捨てたいって事なら読んでから捨ててクローズすればいい。
読まずに捨てたいってことなら、それはやらない方がいい。
理由はFAQ読んで。上にも話題に出てる。
>>260 > スタックって自作できるのでしょうか?
あなたの能力次第。
>>259 お前はまずProgramming UNIX Socket FAQを全部嫁。
>>260 できないと思うのなら、それはお前の知識が無いからだ。
>>261 ないんじゃないの?何が知りたいの?
265 :
264 :2009/11/25(水) 21:25:51
うお、かぶりまくったぜ。
>>264 FAQよんだのですが、bindした時点でデータがきているかはのってないのですが
>>266 自覚して無いかもしれないが、日本語に難ありすぎて意味不明
おそらく 「bindしたあと、recvfromをする前に到着したメッセージは 全て、その後の recvfrom で読み出せるのか?」 と質問したいんだろう
>>260 BSDのドライバのソースを読む
Linuxはダメ!絶対
257です。 >「リスニングソケットにFD_READなどを設定しておくと、そのリスニングソケットでacceptされたソケット全部にFD_READが自動的にセットされる」 これが仕様に基づく正しい動作であることを、英語版MSDNページで確認しました。
こんな何の情報もくれないスレに、律義だなぁ
Arduinoとイーサネットシールドを勉強すれば プロトコルスタックも作れるよ
IE8に導入されたInPrivateブラウズって、保存済みのクッキーすら読み込んでくれないん? クッキーは保存してあるのにリクエストに含まれてこない。 本家サイトみても、”新しくクッキーを保存することはないよん”としか書いてなくてよくわからん。
c+winsockでHTTPプロキシ作ろうとしてるんだが ブラウザから送られてきたhostヘッダの部分を接続先にして データを受け流す、みたいな感じでいいのか? その場合httpsの通信はどうするの?
hostヘッダがないときでも相手につながないといけないわけだが
ブロードキャストで送信しているソケットで、受信もしていて そのソケット宛に、VBのwinsockでブロードキャストで送信しようとすると ローカルコンピュータからは利用できませんとエラーがでたり、 二つのパソコン用意して、同様にVBからHUBを介してそのソケット宛にデータ送ろうとすると 片方はブロードキャストでおくれるのだが、もう片方はデータすらおくれない 同じネットワークにブロードキャスト送信できる数とかに制限あるのかな
TCP/IPにはそのような制限はない。 WinsockやVBについては知らないので他の人お願い。
知らないなら黙ってればいいのに
そりゃブロードキャストで送ればネットワークに負担がかかるし、不要なPCにもパケット送りつける事になってしまうからなあ。
だから何だよ?
ブロードキャストって何?
放送
PC-HUB-PC でUDPにてお互い同時に周期的に送信していて、たまにパケットが喪失するのですが これってどんな原因が考えられますか?
気にする方向を間違えている その件に関して我々は原因を追究するべきではない
udpでもtcpでもパケットは消失するものなんだよ。 tcp: osがどうにかしてくれる。 udp: 自分でどうにかするか諦める。
ただ、HUBを介して単純に超近くのネットワークなのに、他にそのパソコン以外通信なし でも頻繁に損失するものなのかなーとおもいまして 何回に1回とか大体の確率っておおよそでいいからわかるのかなぁ
消失が完全に予測出来るなら暗号に使えるな
LAN側に古いハブ使ってるがコリジョンランプがガンガンつきまくってる 仕組みはよくわからんが、よく通信できてるもんだと関心するほどだ
HUBを介すのと介さないのでは喪失しやすくなったりするのかね
お互いに交互に投げ合ってるならぶつからないだろうけど 同時に投げてるならぶつかるんじゃないのか?
交互に投げ合っててもいつか同時のタイミングが発生しそうな
CSMA/CDか 久しぶりに思い出したんで忘れかけてたよ
>>290-292 お前等スイッチングハブの「スイッチ」の意味知らないだろ。
パーフェクトシャッフルとかバタフライネットワークとか。
なにはともあれ、今つかってるバカハブは捨てるべきだな。俺。 末端のTVとDVDレコ用だけど・・・
PC−PC のように単純にケーブル1本でお互い送受信していても UDPならパケットの衝突か消失がありうるということ?
何がおこってもおかしくはない ノイズやバッファオーバーなど色々あるんじゃない? UDPがそれらに保障されてないんだから、プログラマとしてはそれを考慮してプログラムを組むしかない
>>296 ループバックインターフェースでも消失はありうる。
>>297 バッファオーバーはデータのサイズを小さくもてば少なくなるのかなぁ
ノイズでそんなに頻繁になくなるのかな PC-PCとかでも
1分間に10回ほど消失するって大きい?
今では低速なRS232Cでも電気的に失敗することはある クロックだのなんだの、下位の仕事してたころにはこれでいいのかなと疑問に思いながら作ってたもんだ… もちろん通信の失敗を考慮してプログラムしてたが
今時ノイズは余り関係ない。イーサネットで距離も短ければ。
プログラム組む側としては、そんな話はどうでもいいんだって。
303 :
デフォルトの名無しさん :2009/12/03(木) 02:05:58
距離も短くノイズも関係ないとすればたかだがPC間伝送でパケット消失する理由って・・・
バッファなりなんなり能力以上の処理が必要になれば当 然パケットは落ちる。忙しい状況は自分のプログラムと は無関係に発生するかも知れない。TCP は再送する。 UDP は再送しない。
バカハブは貴重品だぞ。 簡単には手に入らないが価値をしらないバカの手元にあるのはもったいない。
スニファ作るとか?
開発用にリピータハブ重宝しております
>>299 ping 1時間くらい投げ続けてlossどれくらい?
初歩的な質問ですいません。 よくある「"ABCDEFGH"と送信しても"ABC""DE""FGH"と3回で受信されることもある」という例ですが、 この例は送信がTCP/UDPレベルで計3パケットに分割されたということなるのでしょうか?
送信かもしれない 途中の道かもしれない 受信かもしれない
逆に2回にわけて送ったやつがくっついてることもある
既にクローズされてるソケットにclosesocket使ったらエラーで強制終了される?
エラーだが強制終了されない
>>309 UDPならAPIレベルでは分割されないよ。
データグラム通信を提供するサービスだから。
何か障害出まくるアプリケーションが多いのがよくわかるスレだ。 絶対はないから、ちゃんと回避手順を考えてプログラム組むべき。 エラーになったらどうするのか。想定してなかったので、そのまま終了じゃゴミ。
オーストリッチアルゴリズム最強
プロキシを作りたいのですが どうやって作ればいいのでしょうか? 書籍とかあれば教えてください
プロ棋士?
どのような情報を盗み見たいの?それによって作り方変えないと
つまり勝手にパケット横取りしてナニしたいと。
誰かが串通して児ポとかダウンロードした日には死ねるなw
recvに渡した最大受信バイト数を超えるデータを受け取ると 文字列が途切れて文字列操作に支障が出ることがあるんだが バッファサイズデカくするしか無いの?
最大受信バイト数を超えるデータを受信するわけないじゃんw
>>326 n回受信→連結 してから操作しちゃだめなん?
多分 TCP だと思うが、
分割されることだって(1回の send なのに 受け側は recv 2回になった)あるし
まとまることだって(2回の send が、受け側は recv 1回でまとまって読めた)ある
>>326 バッファサイズをでかくするか、
自分でバッファリングするなりしてやらないとダメだよ
proxyってどうやって作るの?
そんなレベルの人には関係ありません
アプリケーション層じゃなくて なんとか層とかいうレベルの処理をするんだっけ?
そうかお前らスキル低いから答えられないのか それなら仕方ないな
はいはいそうでちゅよ〜
中途半端に教えたところでレベルの低い人間には無意味だしね
336 :
デフォルトの名無しさん :2009/12/12(土) 00:35:31
UDPのrecvfromで、サイズを指定しますよね そのサイズって、たとえば1400バイトのデータが送られてきて recvfromの引数でサイズを400で指定してやると、400バイトだけ バッファにため込みますよね 残りの1000バイトはどうなるのでしょうか? 次にrecvfromしたときに400バイトだけそこからまたよみこむのでしょうか?
yes
嘘を教える奴は最低な奴だと思う
>>336 残りの1000バイトは粉みじんになって死んだ・・・
340 :
デフォルトの名無しさん :2009/12/12(土) 01:04:35
では、1400バイトのデータが2回に分けて連続して送信されてきました。 2回送信されたあとに、recvfromで400バイト読んだとすると、 残りのデータはすべて消えるのでしょうか? あるいは、3000バイト読めば全て読めるということでしょうか
せめて試してから質問しろよな
>>340 1回目の送信が1000バイト、2回目が400バイトだったとしよう。
1回目を400バイトのバッファで受信したら、残り600バイトはパァだ。
2回目の400バイトは・・・おめでとう、すべて受信出来たな。
ipは途中でルータが処理するの辛く成ったら捨てていいよって通信手順だしな。 届かなきゃ、再送するしか無い。まあ再送しまくると余計にルータが辛く成って捨てられるけどなw お利口なルータは捨てたら一応icmpで通知はしてくれる。ファイヤウォールとかでicmp捨ててたら当然届かないけどw
348 :
デフォルトの名無しさん :2009/12/12(土) 11:14:57
>>348 あなたがデータを受け取るためにrecvfromの第2引数に指定したバッファ
UDPのカーネル内での受信バッファサイズって どこで規定されてたっけ?defineとかあった? あと、これは勉強不足から来る質問なんだけど IPv6でも65536-20-8=65516が最大サイズでおk?
351 :
デフォルトの名無しさん :2009/12/12(土) 15:40:03
>>349 ありがとうございます
ただ、1000バイトと400バイトのデータが送られてきて
ソケットのバッファ?にたまってますよね
それをrecvfromで400バイトずつ取り出すと、残り600バイトが
パーになるとのことですが、
どうやってrecvfromは、1回目の1000バイトと2回目の400バイトを
別として見分けるのでしょうか
UPDの仕様は理解したうえでの質問なんだよな?
ソフトを作る団塊で通信するパケットサイズ決めておくんじゃね?
>>351 取り出したらああああああああああああああssssssss
見分けるというか、パケット単位で管理してる。
recvfromでパケットごとに取り出すので
取り出す際に余った分は破棄される
そもそもUDPなの?
どうせ釣りだろ
ほんとにTCP/IPの知識ないのにネットワークプログラミングやろうとする奴多すぎ
やれば知識がつくんだからいいじゃない
プロトコル層とかなんちゃら層とか
>>351 > どうやってrecvfromは、1回目の1000バイトと2回目の400バイトを
> 別として見分けるのでしょうか
>>354 が言う通りパケット毎に管理してる。
そもそも recvfrom() は引数で送信元アドレス/ポート
が取得できるだろ。連続して違う相手から受信したらデー
タが混じるとでも思ってるのか?
65536-20-8=65508だったな。計算間違えたぜ。 このサイズ以上はOS側で落とされるな。
proxyの作り方教えてください
364 :
デフォルトの名無しさん :2009/12/12(土) 21:14:06
>>360 recvfromがまとめてパケットを1回でとりこむかなとおもいまして・・・
そういう部分は、recvfromの関数がソケットと関連づけられてつくられてるのかな
他のプログラムが使用してるソケットにデータを送ることってできないの? 某ネトゲチートツールみたいに
p2proxyみたいに
>>365 Windows? Linux?
Linuxなら結構簡単
自作したプログラムで(おそらく)存在しないURLにアクセスすると
3000回くらいで、ネットワーク自体から切断されます
ISPにも問い合わせましたが、このプログラムを止めてくれと言うだけで
原因がはっきりしません
ループ文使って sprintf( http, "
http://....%d.jpg ", i );
とURLを作ってるのですが
なにかしらの暗黙のルールなどあるのでしょうか?
WindowsAPI使ってます
ISP側に同情するわ
>>369 阿呆かお前は
ネットワークプログラムのテストするなら
まずはローカルで試してからだろボケ
致命的なバグを抱えているかも知れんのに
常識を疑われてもしょうがないレベルだな
sprintfで外に出ていってしまうん?
おまえは何を行っているんだ
連番jpgを物故抜きしてんのか? ネットランナーでも買っとけ
>>369 > 原因がはっきりしません
しとるがなw
DoSアタックと判断されて蹴られてると考えるのが普通だな 俺が管理者なら攻撃とみなしてISPに通報するね
IPS(ISPじゃないよ)で自動的に切断です。
IPS インターネット プロバイダ サービス ISP インターネット サーバー プロトコル
preventionなのかprotectionなのか
脳内返答ばかりやな 役に立たんゴミども
んなこといったって、状況説明がほとんどないんだから脳内補完して答えるしかねーだろ とりあえずどうせ、1鯖へのコネクションは同時に2本まで。というルールすら守ってないんだろ・・・
負荷下げるためにkeep-alive使ったり、それで性能がほしければ パイプライニングしたりするべきだが...
まあうざいのはdenyされるので、がんばっても無理だけどな。 相手の許容範囲で出来る事を遣るしか無い。
>>382 >同時に2本まで。というルールすら
>>369 に、「同時にコネクション張る」甲斐性があるとは思えません。
問い合わせたお(^ω^) テンプレが返ってきたお(;ω;) お問合せいただきました事象によるネットワークからの切断に つきましてですが、大変申し訳ございませんが弊社で判断する ことは困難な状況です。 うんこ様のご利用いただいております電話回線に関しまして、通常時に 故障などが発生した場合には、フレッツサービスに関するお問合せ先が ございますので、下記フリーダイヤル番号までご連絡いただきますよう よろしくお願い致します。 とりあえず、コネクション2つ以上とかアホ言ってるやつは士ね
サムライ呼ばわりとは是如何に
388 :
デフォルトの名無しさん :2009/12/17(木) 00:38:13
ファイヤーウォールみたいに通信に割り込みかけるのってどうやるの?
ちょっと待ってて
架空URLに高速連続問い合わせとか、DNS鯖に対する攻撃か・・・? 警告はおろか、実際に査察が来るレベルだぞ
友人がPING(のようなもの)を飛ばしまくって、JPNICからリアル警告くらってたな その話聞くまで都市伝説だと思ってたよ俺も
信用できねぇ
>>392 一般的に考えるとJPNICからってのが胡散臭い感じがするけど
それが本当なら恐らくmrtgみたいなことしようとして主要IXとかに
pingしまくって怒られたって話なんじゃないかと。
むちゃな事をしなけりゃ一生縁の無い話なんだから、どうでもいいなw
どうでもいい
昔はTCPのスタックの負荷テストするのにテキトーなサイトの chargenポートに繋いだもんだったw
(自慢話は)どうでもいい
398 :
デフォルトの名無しさん :2009/12/17(木) 12:41:54
パソコン通信の時代はプログラム的にはどう接続してたの? たしか相手先の電話番号にダイヤルアップで直に接続してたんだよね?
モデムのシリアル接続で直に。基本はテキストのみ。 バイナリをやりとりする時は XMODEM その他のプロトコルで。
相手PCとの同期とかどうしてたの?
図書館とかで古いパソコン雑誌見るとパソコン通信の電話番号とかたくさん掲載されててなんかすごかったわw
同期もなにも、相手のデータを引っ張り出すだけだからなぁ telnetとかわらん感じだが
なるほど。細かいところはハードウェアかOSあたりが処理してたのか。今と変わらんのか。 今でもやろうと思えばパソコン通信ってできるの?
>>400 モデムの上位は無手順。
基本はデータをただ流すだけだけど、
スタートビット、ストップビット、パリティビットなどの取り決めがある。
オサーンが多いことだけはわかった
>>404 そのビットとかはプログラム側で処理するの?
RS232C(COM)プログラムしてみりゃわかる ただ設定をちょこっと命令するだけ
>>406 ちったあ手前で調べろや禿。つーか、シリアルI/Oも知らんのか。
最近のPCは非搭載なのが増えたせいか?
周辺機器との通信と同じってことかな?ふ〜ん今のプロトコルとかより簡単そうだね
本気で聞く気がなけりゃこんなもんだろう
みなさんの貴重はお昼休みをどうもありがとうございました^^
テンプレに本気じゃないやつは訊かずに自分で調べろとでもいれとくかw
もう232Cでのプログラムなんてやらなくなっちゃったしな USBばっかだし(USBもシリアルじゃんって言わないの)
その通信の先にppp接続がある
232Cポートが無くなっても、 最新のLinuxで毎日使う端末画面はボーレート38400bps
たった今も機器とのシリアル通信のコード書いてるんだが・・・(マイコン系)
>>413 USBシリアルデバイスって知らないの?
USBは上位プロトコルは既存のプロトコルを採用している。
知ってて「突っ込むな」と書いてあるように思うんだが。
まさかストレートにつっこまれるとは思わなかった
最近はマイコンでもシリアル通信用のライブラリがあるからなー AVRでUARTとMAX232でPCの232Cとシリアル通信したことあるよ。
USB仕様が物理層でシリアルなことと、 USBシリアルデバイスがデータリンク層でシリアル型プロトコルであることは別。
で?
423 :
デフォルトの名無しさん :2009/12/17(木) 15:35:37
パソコンに繋いだ外部機器との通信とかドライバのことってこのネットワークスレでいいの?
マウスとかは勘弁して欲しいけどw、 HP-IBとかそういうのは構わないんじゃないの
ども、質問できるスレを確保したので本格的に勉強始めますわ。どもでしたー
あいよ−
念力はだめだからな
ふーん
エスパー問題なら俺に任せて。 他人のバグなら7秒で解決する。
>>429 がデバッグを完了するタイムは、わずか7秒にすぎない。
では、デバッグプロセスをもう一度見てみよう。
432 :
デフォルトの名無しさん :2009/12/21(月) 18:30:51
エスパーを迫害中ですか
そのうち「テラへ」スレになりそうだ
雑誌を次々と潰していくエスパーよりはいいかもな
マルチスレッドのクライアントを作ろうとしてるんだけど なんかエラーが出る件 WSAStartupはメインで1度呼ぶだけでいいんだよね?
Yahooでは返答がなかったのでこちらに質問します
HTMLフォームにキーワードを入れてクリックする処理
たとえば
http://www1.axfc.net/uploader/Sc/so/67614 のようなサイトで、ファイルをダウンロードするにはキーワードを入れる必要があります
今回のサンプルでは test といれてクリックすればダウンロードできます
これをプログラムで処理したいのです
短く言うと
フォームにキーワードを入れて、クリックする処理をプログラムで実現したい
C/C++で処理したいと考えてます
サンプルソースなど教えていただけないでしょうか?
OSはWindowsです
そんなニッチな作業をするピンポイントなサンプルは無い キーワードは固定なのか? ネットワークプログラミングスレでその質問をするということは、 まずソケットの扱い方とHTTPの仕様を理解しなければならないな
ネットワークプログラミングじゃねーじゃん IEコンポでも使えばいいよ
Winsock2なんですがサーバアプリケーションで連続してacceptすると100回のうち1〜2回ぐらい、 1)メインスレッドで sock=accept() −> INVALID_SOCKETではない 2)メインスレッドで sockを別スレッドに渡す 3)別スレッドで event = WSACreateEvent(); 4)別スレッドで WSAEventSelect(sock,event,...) −> SOCKET_ERROR 発生(WSAGetLastError()は10038) という状態が起きます。 メインスレッドでは accept()後、別スレッドに処理を渡してすぐに戻る仕様です。 また、別スレッド管理は空いているスレッドがなければ作成、アイドル中のスレッドがあればそれを使用、 接続中のスレッドが3コになったら、空きができるまでaccept()には戻りません。 同時に2つ以上の接続要求が来なければ、問題なく動作しているようなのですが接続要求が連続してくると上記のような症状が発生します。 原因になりそうなことが分かる方はいらっしゃいますか?
メインスレッドがちゃんと渡してないのでは。
Winsock2は詳しくないんだが、エラーコード10038の意味は何? それを調べる事から調査が始まるのではないかと。
>>446 デバッグ用にコードを仕込んで確認しました。
acceptから受けたsock(メインスレッド) と WSAEventSelectに渡されるsock(別スレッド)は同じでした。
>>447 WSAENOTSOCK
10038
Socket operation on nonsocket.
An operation was attempted on something that is not a socket.
Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.
です。
有効なソケットではないという感じです。
449 :
445 :2009/12/27(日) 23:10:32
>接続中のスレッドが3コになったら、空きができるまでaccept()には戻りません。 この部分を1コに変更する(つまり、ひとつの接続が完了するまで次のaccept()には戻らない)と上記のようなエラーは発生しなくなります。
メインスレッドからポインタでデータを渡していて スレッドで読んでる最中に上書きしちゃてるとか
タイムアウトのためだけにselect使う場合は FD_ISSETは使うわなくていいんだよな?
>>451 エラー要因はちゃんと見とけよ
割り込みだったら待ちなおしだ
453 :
445 :2009/12/28(月) 18:06:48
>>450 SOCKET型変数を値渡ししています。
どこかで上書きしちゃっている可能性も考えたので
>>448 で実験していましたが
エラー発生時のメインスレッドのsock(SOCKET型) と値渡ししたsock(SOCKET型) は同じ数値でした。
また
>>445 の1〜4のうち、1と2の間でも、acceptの戻り値がINVALID_SOCKETであるかどうかの確認を行っています。
このときにはINVALID_SOCKETではないのに、別スレッドに渡した後のWSAEventSelect()やWSAEnumNetworkEvents()でSOCKET_ERRORになります。
SOCKET_ERRORの時はif(WSAGetLastError()==WSAEWOULDBLOCK)...の処理を入れてあります。
別のとこで同じソケット使おうとしてるんだろ
排他制御が出来て無くて他のスレッドで無効にしてるんだろ。
457 :
445 :2009/12/29(火) 00:06:22
>>455 ありがとうございます。
リンク先のURLはWSAEventSelect(...)の2番目の引数はWSAEVENT*ではなく、WSAEVENTだよってことですよね?
(ソースはWSAEVENT**を渡そうとしているようですが)
>第一引数のソケットは正しくても WSAENOTSOCKが返ることもあるみたいだし
SOCKET_ERRORを返した場合でも、一定時間待機後リトライするようにしたところ、成功することがあるということが分かりました。
それでもまだ失敗する場合もあるようですが、かなり改善しました。
いろいろ試してみます。
>>456 それはないと思うのですが。
スレッド間で異なる値のソケットを持っていますし、アドレスで渡してはいないので別スレッドのソケットを参照してしまうこともないです。
スレッド間の排他制御以前の問題だと思います。
>>457 > スレッド間の排他制御以前の問題だと思います。
自分のコードが間違っていると言う考えには至らず、システムに原因があると考える、
典型的な初心者。
100%に近い確率でお前のコードのどこかが、SOCKETを無効にしているか無効なソケット
を渡されたのをチェックせず見逃している。
コードをうpすれば間違いを指摘してやるのにな
>>453 >エラー発生時のメインスレッドのsock(SOCKET型) と値渡ししたsock(SOCKET型) は同じ数値でした。
それは、acceptの戻り値と一致するのかな、っと。
461 :
445 :2009/12/29(火) 18:33:55
>>458 >自分のコードが間違っていると言う考えには至らず、システムに原因があると考える、
違いますね。
排他制御以前に自分の「winsock2の取り扱い方」に問題があると思っています。
>>460 >メインスレッドのsock(SOCKET型)
これがacceptの戻り値です。
>461 ぐだぐだ言ってねぇでいいからSOCKETを渡してるとこと受け取ってるとこをmutexでくくれ。 話はそれからだ
> 排他制御以前に自分の「winsock2の取り扱い方」に問題があると思っています。 socket, acceptでSOCKET作る。使う。閉じる。これだけなのに使いこなせないとは よほどのヘボということになるが。
仕事の話なら「死んでくだしあ」になるけど 趣味ならしょうがないというか、よくある話でしょう。
勘違いしてました、とかよくあるからな
2ちゃんねるはもっと親切な場所だと勘違いしてました(><)
2ちゃんねるが親切とか、どこを見ればそんな勘違いできるんだろう
俺がいるからこういう勘違いをさせてしまう
オヤギリ・・・ゴクリ
みんな、すまん
うむ
2ちゃんねるは 匿名で知らない新人のかげぐちを言う 最低のゴミクズのチンカス野郎のあつまりですよ(^-^)
チンカスって何?
>>453 > SOCKET_ERRORの時はif(WSAGetLastError()==WSAEWOULDBLOCK)...の処理を入れてあります。
こういうWSAGetLastErrorの使い方されれると、
ドキュメントに書いてあること守っているかどうか気になるなあ。
いっそオープンソースでやればいいが ぱくられる、たたかれる、異常なほどの知識をもったキチガイがくる のいずれかに該当するので結局オープンにしない そして、車輪の再開発はまた繰り返される これが日本のクオリティ
477 :
445 :2010/01/03(日) 00:45:04
原因が分かった。
別の接続で(
>>445 とは関係のない部分)のミスだった。
別の接続がソケットを使用し、ある条件によって即座にclosesocket()する場合としない場合があるのだけど
closesocket()した場合でも、その後オブジェクトの破棄時にまたclosesocket()を呼び出していることが原因だった。
最初のclosesocket()によって開放したソケット(と同じ値)を
>>445 のサーバが再利用するようになったときに
オブジェクトの破棄時にまたclosesocket()を呼び出したせいでサーバが取得したソケットを無効にしてしまっていたようでした。
大きなファイル or ストリームデータもスムーズに流せるパイプライン的動作の http proxyを作りたいのですが、Keep-Aliveのセッションに流れているリクエスト間の及び レスポンス間を検出をする効率的な方法を教えてください Content-Lengthヘッダは必須ではないようですし 1Byteづつシフトさせてある程度の量を読んでリクエストライン/ステータスラインを 検知するような方法だとbody内等に類似の文字列が含まれた場合に 意図しない動作をする可能性が考えられます (検知に必要なリソースが増える上に遅くなるので避けたいと言うのもあります) ・・・どうしても不確定要素が排除できない・・・(´・ω・`) よろしくお願いします
RFC 2626 §8.1.2.1 より > In order to remain persistent, all messages on the connection MUST > have a self-defined message length (i.e., one not defined by closure > of the connection), as described in section 4.4.
SystemVとPosixのメッセージキューってどっちが高速なんでしょうか?
お前の環境で実測しろ、馬鹿
482 :
478 :2010/01/05(火) 19:55:43
>>479 レスthx。そんなところに書いてあったのか
Content-Lengthでやってみます
一般的とは?速い根拠は?
>>484 SystemVが遅いからいろんな方法が生まれたということを考えるとねぇ
だから、根拠は? あんたの妄想なんていらないんだよ
なんて偉そうな教えてくん
で、根拠はまだかね?
おい、根拠はまだか
こっちだって忙しいんだからさっさと根拠だせよ無能ども
根拠は出せないみたいだな 知ったかの馬鹿ばっかだったってことだ 今日も俺の勝ち
ねんねの時間だぞオイ
誰?こいつにこんなとこ教えたの
深夜に会社にもぐりこんでパソコンやってんのかね キモチワルイ ヒマジン キチガイ モノゴイ
ほんと、一般的〜とか 〜の方が速いとか 〜が遅いからとか 真面目なスレに出てきてほしくないよね、何が楽しいんだろうか
そもそもメッセージキューって、このスレと関係ないだろ。
>>495 お前も何が楽しくてレスしてんだよ。
この一連が楽しくないからレスしたのだが、それがなにか?
争いの発生源 深夜時刻の書き込みを規制すればいいような
そんなできもしない事を書いて何になるのか
根拠や実現性の無い事ばかり言う奴っているよね。 邪魔でしょうがない。
マスコミとか?
手元の環境で簡単に実測できることを、いつまでぐだぐだ言ってんだ
>>500 はナイコン族。キーボードの写真を見ながらプログラムを夢想してる。
ナイコン族なつかしー
>>496 UNIXネットワークプログラミングのVol.2の内容だな
このスレとは関係ないけどな
意図的にパケットロスや遅延を起こすようなブリッジっぽいプログラムを探してるんだけど なんかお勧めはありますか?
dummynet, altq
linee
509 :
デフォルトの名無しさん :2010/01/10(日) 12:54:45
WMICコマンドでNICのレジスタを操作したいのですがどの程度できるものなのでしょうか? また参考になるサイトは有りますか?
510 :
デフォルトの名無しさん :2010/01/15(金) 18:52:31
データ収集のためにあるサイトに10000回ぐらいHTMLファイルの要求したいんですが 1回ごとにどのぐらい、間を開けるべきですか? 曖昧な質問ですが教えてください。 自分としては10日ぐらいにわけて要求しようと思っているのですが それが多いのか少ないのかわかりません。
そのサイトの管理者に聞きなさい
>>510 あまり頻繁に同一アクセスすると、DOSアタックと間違えられて、塞がれるからかもしれないぞ。
513 :
デフォルトの名無しさん :2010/01/16(土) 10:07:48
>>511 さん
>>512 さんありがとうございます。
難しいですね。
アクセスする度にIP変えるとしてもホストでわかるでしょうし。
とりあえずまだ時間はあるので自分で考えてから決めようと思います。
>>510 ,511,513
何を言ってるんだ、おまいらは?
それはネットワークプログラミングの問題ではなくて、サイトの運営ポリシーの問題だ
512 が正論だと思うが… … …
おまえは2chをなんだとおもってるんだ
掲示板かな
アクセス少ないサイトで10000回もアクセスされたら嫌がらせだな。 100万PVのサイトなら誤差? 開発日記でもブログに書いて10000回アクセスしてログ見てみたらw
518 :
デフォルトの名無しさん :2010/01/16(土) 21:32:09
>>517 1日当たりのアクセス数調べてみたら5000万はありそうです。
とっても嫌な気持ちになると思われます。。
アクセスランキング上位の超人気サイト
google相手だったら恐らくbanされるな(規約で自動化について触れている)
winsockでconnectのタイムアウトをつけるにはどうすればいい?
ノンブロッキングでconnect
スレッドでコネクト
524 :
デフォルトの名無しさん :2010/01/24(日) 01:45:41
シリアルポートを使うアプリ開発しているんですが、 PC1台しかないんで、もう一つ対抗装置をエミュするアプリ作って 同じPC上で通信ってできますか? ソケットならループバックできるけど、シリアルポートはさすがに無理? 物理的につながった相手としか交信できませんか?
VMwareとかVirtualBoxとかを使えばできるんじゃない?
>>525 なるほど!その手があったか。
ありがとうございます!
安いPCでも買えばいいのに
普通にUSBシリアル変換を1つ持ってくれば良いんでないの?
古いPC何台かあまってるけど あげようか?
>>525 仮想ポート同士を繋げるなんて出来たっけ?
MAX232使えばいいよ
え?今のPCってシリアルついてないの?
今もPCってパラレルポートもなかったりして
>>530 データの読み書き程度なら、VMwareの場合シリアルポートを名前付きパイプに
マップしたり出来るらしいし、なんとかなるかも
telnetdを作ってるのですが、 0x1bのESCだけが送られてきた時と、 エスケープシーケンス(0x1b[Aとか)の区別は 続く文字がこない場合、タイムアウトでやるしかないでしょうか。
どっちみちクライアント側からは 行単位でしか送られてこないケースが多いけど
エコーバックがあるからそんなことないだろ
次が来るまで保留
何故、区別する必要があるのだろう?
そういえば最後の1バイトが0x1bで終わってると ハングアップする糞メールソフトがあったな NeXTのMail.appだったかな
シリアルで電文コマンド送出するプログラム書いたから 内容によって返答を返してくれるレスポンスプログラムも用意してデバッグしたいってこと? 素直にお古のPCを持ってきた方がいいんじゃない?
送る処理と受ける処理を混同してるような
s/送る/攻める/
なにこいつうぜえ
>>540 いやいや、常に正格なバイト列だけ送られると仮定してはいけないよ。
549 :
デフォルトの名無しさん :2010/01/25(月) 12:45:46
ええと、 よくキャンセルの意味でESCを押して画面やコマンドを クリアすると思うのですが、それを実現したいのです 簡易シェル的な機能を持ってるので カーソル移動とかと区別したいのです
それはクライアントの仕事じゃないの
telnetd→クライアント の方向から カーソル移動とかのエスケープシーケンスを送るのは考えられるけど クライアント→telnetd の方向で カーソル移動とかのエスケープシーケンスを流すの?
画面制御は無いけど、文字コード切り替えはあるな。
UNIXドメインソケットつくるとき socket( PF_UNIX, SOCK_STREAM, 0 ); 第3引数には 0 を入れてるけど、ほんとは何が正しいの?
554 :
デフォルトの名無しさん :2010/01/25(月) 16:02:39
telnet 中に ^] を押すと何かが起こる
>>552 そうなると 文字コード切り替え と 簡易shell への画面消去を意図した 0x1b 一発との区別は
ストリームベースである以上 telnetd 側では判断できない ってことになるよね
クライアント→自前teknetd で 後者の操作を意図した入力は クライアントが [ESC] 押下に対して
0x1b を 2発投げるとか
『0x1b受領後 後続の文字がサポート外シーケンスは全て後者の動作とする』 とか
(結果的に [ESC] を2回叩かせる)
こういう落とし方になるのだろうか?
>>524 古いPCならシリアルポート2つ付いてたりするけどな
1つしかないなら、シリアルカード買ってきて刺すのが吉かと
¥3kくらい?
シリアルポート⇔TCPソケット の簡易鯖作って アプリのほうは TCPソケット相手にがんばる じゃ面倒か
今ならUSBのシリアルポートあるでしょ アレ便利ですよ
USBシリアルだと電圧足りなくてPICに書けなかったりするんだよねぇ
たまに電力足りないとかでEEPROMライタ使えないとかいう噂あるけど
やっぱりそうかw
シリアルの電源使ってるのかw シリアルじゃ足りなくてキーボードコネクタからも拝借してたなあ・・・
駄目なひとはUSBハブ通しちゃってるんじゃないの?
TCP/IP だと通信内容モニタリングはしやすくなるのかな
文字化け、抜けがないから他の手段よりは良い
デバッグになるのかなー
なんないでしょw
>>562 TTLレベルでごまかすのが多かったからだと思う
TelnetサーバをC言語で実装しようと思うのですが、どこかにソースのサンプルってありますか?
572 :
デフォルトの名無しさん :2010/01/27(水) 11:58:37
Icecastクライアント(ねとらじ放送ソフト)の実験的作成に当たって、ストリーミング送信に関する 情報を集めているのですが、受信側はよく見かけるのですが送信側がとんと見つかりません。 シンプルな送信側のサンプルはありませんでしょうか?
573 :
デフォルトの名無しさん :2010/01/27(水) 13:06:34
>>524 com0com っていう仮想シリアルポートドライバが便利ですよ。
偽装されたIPアドレスからの接続要求をacceptして データをrecvすることってあるんでしょうか? それともacceptとrecvが成功していれば相手のIPアドレスが 偽装でないということになるんでしょうか?
状況による。
(A)とAcceptした接続に割り込む形で(B)から嘘パケットが流れて来るなら明らかに偽装といえるけど (B)がいきなり接続して来る場合は何に対して偽装してるのか、って話になる。 (B)にそのIPアドレスが設定されてれば同じ動きをするし。
特定の国からのアクセスをブロックしたいとか、そういうことだろうか? IPアドレスで通信相手を識別したい?
IPヘッダの送信元アドレスが偽装されていてもaccept、recvは行われるのか?
ってことです。ググッてわかったのは
1.クライアントがSYNパケットをサーバに送信(connect呼び出し)
2.サーバはSYNパケットを受信すると確立待ちコネクションキューにエントリを作成
3.サーバはACK/SYNパケットをクライアントに送信
4.クライアントはサーバからのACK/SYNパケットを受信(connectから戻る)
5.クライアントがACKパケットをサーバに送信
6.サーバはACKパケットを受信すると、確立待ちコネクションキューから対応するエントリを確立済みコネクションキューに移動
7.accept関数は確立済みコネクションキューの先頭から確立済みのコネクションを取り出す
この4、5をサーバからの応答なしにACKをサーバに送信して
接続が確立されることがあるか知りたいんです。
>>577 recvした相手のアドレスが本当に通知されたアドレスなのか知りたいんです
(ACKパケットのACK番号)=(SYNACKパケットのSEQ番号)+1 が成り立っていればサーバは接続が確立したということにすると思う MACアドレスも偽装しないと駄目だろうけどね 通知って何?
>>579 通知っていうかIPヘッダのIPアドレスです
サーバの返すSEQ番号が分からないとだめなので
偽装IPアドレスからrecvすることはないって認識でいいんでしょうか?
IPアドレス・スプーフィングって専門用語があるのね・・・ そしてwikiによると最近のシステムなら大丈夫っぽいですね
最近はARPスプーフィングの手口が多いんだろうけど、 一連のコネクションの中でMACが切り替わるようなARPパケットが割り込んだ場合どうなるんだろうねぇ
583 :
デフォルトの名無しさん :2010/01/29(金) 15:05:24
暗号化しても総当たりで解析出来るほど通信を遅延させれば(ry パケット廃棄されてicmpのdestination unreachable message投げてくるのは暗号化でも回避仕様が無いと思う。
IP spoofingならハックラ板か通技いってやってくんない? そんなカビのはえた話題興味ないから。
俺もお前なんかに興味ないから他の板いってくんない?
板違いだから出てけってんだよ。
>>585 みたいなのは板違いもいいとこだろ。キチガイはVIPにでも行ってくれ。
>>588 テメーのどこがプログラム技術だ? 言ってみろ。
タチわりいなコイツ
こんなリクエストパケットは破棄しちゃえ
このまま無限ループしないようにちゃんとTTL減らしておけよ
怒ったからICMPも投げないで廃棄してやる。
596 :
デフォルトの名無しさん :2010/02/02(火) 18:38:37
ちょっとだけスレ違いは理解してるが、教えて。 この質問の回答が得られるスレか、解説HPでもおっけぃ マンションはひとつのグローバルIPしかもってなくて、 マンション中には192.168.11.2〜42ぐらいまでのローカルアドレスで 接続してるとする。 192.168.11.10 の人が立てたWEBサーバ(port80)と、 192.168.11.20 の人が立てたWEBサーバ(port80)が共存出来るのは なぜ? 外部はどうやって、192.168.11.10と192.168.20の区別が出来てるの?
>>596 実際に、どこのマンションで区別できてるわけ?
>>596 実際はグローバルIPを割り当てしてもらってないか?
静的NATで192.168.11.10:80 や 192.168.11.20:80 に変換してるだけかもしれない
IPってゆうな。クズ。
>>597 住所ってこと?光マンション風な場所です。
>>598 実際は、先頭から3番目まで同じで、4番目は 10と20とか、違ってる。
(偶然知り合いが同じマンションにいて)
静的NATと、実はグローバルIPじゃないの?ってのを重点に調べてみますー
実際のアドレスを出せっていってんだクソボケが
公開しているとは言え、2ちゃんねるに知り合いのWEBページを晒すのはイヤだろ。
質問自体も喧嘩売ってるわけだしね。 答えてる奴が馬鹿。
外からは見えてないんじゃないの?
>>596 その例では、外からポート80を共有することは100%出来ないですだよ。
そもそも誰か一人だけであっても、運用上の問題で
そんな設定をマンションがしてくれるわけがない。
IPっていう奴だから程度が知れている。
全員同一LAN上にでも居るってのか? PC複数持ってきたら枯渇するのか? そんな馬鹿なマンションあるのか?w
馬鹿はお前もだ。なぜこのスレにいる?
お隣さんの秘蔵の画像が見れちゃったりするのかな
ケーブルTVとかメディアコンバータ直結 ブロードキャストもsmb/net-bios/net-beuiも通しまくり パスワード無い共有フォルダが丸見え
VLANだよな
>>605 出来るよ。質問者が気に入らないから答は書かないけど。
$ echo -n '方法' | md5sum
9aa60fb0d7c7bdbe25dcda84957e2ae6
ルーター(レイヤー3)レベルで2つの内部ホスト宛のパケットを区別できるわけがない
あぁ、それは出来ないな。でも
>>596 を実現する事は出来る。
大人しくグローバルipの割当貰えよ。
ipってゆうな。クズ。
やろうとすれば出来るという話と、何故現状出来ているのかという話が混ざってないか?
パケットを処理するためにプロセス1つとスレッド1つを 利用し以下の処理をします。 メインプロセスでselectでデータを受信します。 次に、受信したデータをバッファにコピーします。 バッファにデータがある場合スレッドはバッファのデータを解析します。 最後にスレッドは解析したデータをもとに、送信元へ結果を返します。 この時、スレッドから接続するソケットのディスクリプタは、メインプロセスで 利用しているものと共用したいのですが可能でしょうか。 また、ディスクリプタを共有する場合recvとかsendする場合、排他制御が 必要となるのでしょうか。
selectはデータを受信できない。
プロセスとスレッドでソケットの共有は絶対不可能
受信タスクや送信タスクを複数つくるメリットってなんでしょうか? 結局、 受信タスク1 受信タスク2 でそれぞれrecvfromで待っていても タスク1→タスク2 という順に処理するから whileループ内で二つを回しているのと変わらないきがするのですが
whileループ内でrecvfromを2回やると 最初のrecvfromが受信しない限り、 2番目のrecvfromは呼び出してもらえない。
スレッド間でソケットって共有できないのでしょうか? 一方が受信専門 他方が送信専門 って作りにしたいのですけど
純粋な送信・受信なんてUDPでなきゃ無い。送信にはハンドシェイクのための受信がつきもの
>>623 タスクやスレッドでそれをやると戻ってくるのでしょうか?
単にrecvfromにタイムアウトをオプションでつければよいのではないのでしょうか?
デフォルトでもタイムアウトなかったかな
別々のプロセスで recvとかsend排他しないで 呼び出すと結果はどうなるのでしょうか
ドキュメントに書いてあればその通り。書いていなければ、 1 後が待たされる 2 順番は関係なく奪い合う。 3 後がエラー のどれか。 ドキュメントに書いていない事なので、その動作が今後も保証される事を期待してはいけない。
俺なら受信と送信をスレッドを分けるんじゃなくて 通信と計算処理のスレッドを分ける
>>627 少なくともWinSockの場合はスレッドセーフになっているよ。
並列にsend/recvできる。
>>629 こういうのうざいんだよなぁ
質問に対して、本人はアドバイスしてるつもりなんだろうけど
実際は単に知識自慢とか俺ならこうするとか・・・
ほんとうざい
大丈夫 6時間も経って書き込まれるいまさら感漂うそういうレスも十分ウザイから
634 :
631 :2010/02/04(木) 15:52:59
ああ『別々のプロセス』か。
>>624 と質問を勘違いしてた。
質問者は本質が判ってなくてあさっての方向に進もうとしてる場合があるから 単純に質問にそのまま答えるよりも質問の意図を汲み取って 本質的な部分の間違いを正した方が良いケースは結構多いんだけどな
俺なら受信と送信のスレッドを分けた上で 更に通信と計算処理のスレッドを分ける
お前の話なんて聞いていない
それは分けすぎだよ
Linuxだとrecvとsendはスレッドセーフじゃなかった。 Windowsが最強なんだな
俺なら受信と送信のスレッドを分けた上で 更に通信と計算処理のスレッドを分け、 計算処理はコア数分並列化する。
while{ recvfrom 1 recvfrom 2 } こうやった場合とスレッドでrecvfromわけた場合ってシングルコアなら基本的に動き同じですよね。
それ何の言語だよ
>>640 OS非搭載のマイコンプログラムで、それをするにはどうすれば出来ますか?
>>643 君、マイコンwプログラムをしたことないの?
いまからするんですよ
LEDチカチカ光らせてから言えw
LEDチカチカは本のをコピペで卒業しました。プログラム書いてないけど みんなはOS非搭載の時は自前で簡易タスク切り替え、スケジューリング等を実装してるんですよね 並レベルのプログラマなら簡単にマイコン用ぐらいならできると聞いたんですよ 逆に出来ないと恥ずかしいレベルらしいです
tronでも調べてみなさい たいした事はしていない
なんで、そんなこと言うの? 知っているくせに たした事してないなら教えて
調べてから言いなさい無能君
こういうのって本にかいてたっけ
こういうのって、職業プログラマーなら基礎の基礎知識でしょ プログラマならOSの基礎ぐらい知ってるでしょう それすら知らないのに、やれスレッドっでどうのなんて職業プログラマーじゃないよね 自分趣味だから基礎なんてないんです 自分みたいに趣味がほとんど?
黙れ基地外。
煽りを相手にするな('A`)
>>641 まぁおなじっちゃ同じ。
つーか、ブロッキングソケットなんて業務じゃ絶対なしだから、
(マイクロソフトはふつーにブロッキングソケットのサンプルとか掲載してっけどね。)
非同期で話をするけど
普通は一個のスレッドで、
while()
{
select()
if(FD_SET(s1))recvfrom(s1);
if((FD_SET(s2))recvfrom(s2);
}
とかやるので一個のスレッドで複数のソケットを待つのは普通のやり方。
#一個のソケットに対して
#recvfrom(s1) 1回目
#recvfrom(s1) 2回目
#とかじゃないよね?
複数のスレッドで受信をしたいというのは、スレッドに対してもてるソケットの数に上限があるとか、
そう言うケースじゃないの?昔のWindowsはたしかそんな制約があったような。
OSレスのマイコンのスタックは作ったけど、シングルタスクの場合
>>655 の通り全ての処理はポーリングでこなす事になる
純粋にパケットやデータを操作するよりもソケットの概念を実装する方が難易度は高い感じ
というか、ソケット付きのスタックはもうある前提の話か?
OSっていうと資源管理とかやらんといかんけど
タスクディスパッチャだけなら基本的にスタックの操作だけなのでごく簡単に作れる
いとつのスレッドで、生成できるソケットはマイコンでは限られている だから複数のスレッドをつくるということでしょうか
ブロッキングとノンブロッキングの違いが解って無さそうですね
理解できない人って、どうしてOSを特別視したがるんだろうね。
日本語の不自由さからして中国人かな
Windowsのselect関数が64個までしかソケットを扱えないっていう話じゃないかそれは マイコンだからとかそういう話ではない
マイコンっていっても8ビットマイコンと32ビットマイコンじゃ 性能がかなり違うと思うけど
俺なら受信・送信するたびに新しいスレッド作成してその上で実行し、 更に通信と計算処理のスレッドを分け、 計算処理は処理数分並列化する。
馬鹿にはプログラムは無理。ユーザに戻りな。
ポーリング処理は専用のスレッドで行うに決まってるだろ。
668 :
656 :2010/02/05(金) 17:42:23
いやいやタスク分けてないんでメインループの中で処理するよ ネットワークの制御はスループットが必要な通信でもなけりゃさして高速に反応する必要もないんで 2,3msに1回通る感じでもそれなりに使える
ブロッキングソケットしかしらないからポーリングがわからないんだよ
スレッドでのネットワークについて勉強できる本とかないですか? C言語で
言ってることが切れ切れで何がしたいのかさっぱりわからん ・開発環境 ・実行環境(使用するOS) ・プログラミングの経験 ・ネットワーク基本知識の程度 この位は書いとけ
>>671 マイコン
Cの基本
ネットワークの基本
これがゆとり世代か(;´Д`) 後は任せた
ゆとり世代じゃなく、ゆとり時代 ゆとり時代の象徴トヨタゆとり過ぎでエライ目にあっているな あれみると、上から下まで日本は "ゆ と り" とわかるだろう
お願いします。 このままじゃ空白の世代ができてしまいます
空白の世代ができて何か問題あるん?
全く問題ないよな 空白の世代が出来たとしても、空白の世代の影響がなくなる未来が来るよ ゆとり時代の最大の功績は空白の世代を作り、未来の世代に試練を与えたことである。 そして、この試練を克服した世代が1000年以上の長期にわたる繁栄の礎を形成する 長い目で見ればいい事だな
複数のソケットやスレッドを管理しなけりゃならないなら OS使った方がいいんじゃね?
は?なにが言いたいの?
ブロッキングの方が良い処理もあれば、そうじゃない処理もある 目的もないまま方法論をあーだこーだこねくり回しても無意味だよ まずは組んでみればいいじゃない 組めもしないなら、何が理解できないのか、何が準備できていないのか、を相談すれば良いだけのこと 何もしないうちから何したらいいですかと言われても誰も答えられない
なにマジなってんの
>>656 プロプならスタック作れるの当然だけど、趣味だけプじゃとてもそんなレベルに行かないよ
趣味プはひたすらパクル、と言うことでuIPをパクって来た(これサンプル付きだよ)
マルチタスクはネットタスク、UARTタスク、UI監視タスク...をリアルタイム性を維持しながら
切り替えるのに使いたいの。
超簡易超手抜きリアルタイムモニターでもさ、作れるとあとあとマイコンプログラムするのに便利でしょ
タスクディスパッチャ簡単に作れるなら、どう作るか教えてください
OSもパクればいいじゃない
最近ハード自体安くなってるから 1GのNIC搭載したFPGAボード作って さらに独自のスタック作るなんて1ヶ月程度の遊び で誰でも作れるだろ
そんなに安いもんなの?
>1GのNIC搭載したFPGAボード作って 製造実装で10万円はかかるだろw
趣のある味なプログラムを作れるのが趣味グラマ 金とオマンマの為に命を削って、別に愛してもいない妻の為に 家に給料を持って帰るのがプログラマ。
独自のスタックとか、組んでみるってのは勧めないなあ。 たまたま動いたレベルで世に出したら、動かなくて致命的だと思う。 ちゃんと仕様上問題ないか検証してから出してくれ。 プログラマはオープンソースで無料奉仕するのが基本だろう。 対価を求めては逝けない。無料でソースを後悔してこそ尊敬されるよ。 普通にatomあたりの載ったGbE付きのPCマザーでいいじゃんと思うが。1万円もしないぞ。
HELL! GPL.
独自のネットワークスタックとか勉強するのにお勧めの本おしえてください
>>691 その本見ても製品レベルの
スタックは絶対作れないしたいしたこと
書いてないから別の本読め
694 :
デフォルトの名無しさん :2010/02/06(土) 08:14:38
本というよりbsdの最新版のソースでも見たほうが速いと思う。 ipv6伸すタックも探せば誰か作ってるだろう。
ここスレのエロイ人スタック作ったことあるの? 車輪の再発明でも、ネットプログラム熱く語る人なら 俺俺スタック作ったことあるんじゃないの。 スタックぐらい作ってから熱く語れ(エラそうなこと言え)って言われるよ
TCPなんてまともに作れませんよ。無理に決まってるだろ。挫折したわ。
常にフラグメント禁止でも制御系の通信なら事足りますし・・・
スレッドわけるというネタの続き。
完全に実装とはなにをいってるんだ
UARTでいいよ
出来ない事を要求されたら「出来ないものは出来ん」と開き直る。
それは開き直りじゃないだろ
つまりtcpに似た何かでしか通信出来ない屑スタックなだけじゃんw 古のsnaでも使えばいいのにw
tcpで1バイト毎にかならず1データグラムを送る糞デバイスを見た事がある。
>>712 キーボードのエコーバックとかふつうにそうなるでしょ
めずらしいことじゃないよな
*必ず*だから制約条件を満たしていない。
別にめずらしくもなんともないことを*必ず*やるとなぜに糞扱いになってしまうのかが謎だ
>>715 100バイトのデータを送るのにtcpデータグラム100個送るのが糞でないのか?
まあプログラム的に美しくはないがw それでいくとtelnetクライアントも糞になっちまうなあ そのデバイスのせいで輻輳が起きるとかじゃなければOKなんじゃね?
telnetは100バイト送れるときは100バイト送る。 世迷言を垂れ流すな。
普通に使ってるときはエコーバックのために一文字毎にしか送って無いように見えるけどなあ? 超速タイピングとかコピペ貼りつけとかするとまとめてくれるのかな??
お前ら素人が知らないだけで、telnetは見えないデータを送ってるんだよ。 例えばTERMやDISPLAYなどの環境変数。
んじゃあ 全部1バイトづつ送る謎のデバイスは糞だけど telnetはチョビットだけマトメテ送ってくることが有るので 糞じゃないってことでよろしいすかぁ? 謎のデバイスの正体やいかに?
>超速タイピングとかコピペ貼りつけとかするとまとめてくれるのかな?? yes
telnetはプロトコルでしょ。話にでてるのはデバイスでしょ? ネットワークに関するデバイスで、TCPスタックを提供するドライバが TCPで1バイトづつ送られてきたときに、普通はくっつけてイーサネットのフレームにして流すのに 毎回、1バイト/1フレームで出す、とかそう言う話でしょ? それだったら超糞だけど、ほんまかいな。
イーサネットでTCPにおいてフレーム流すのって時間制限なかったっけ
725 :
723 :2010/02/09(火) 19:58:50
実はパケットキャプチャソフトでのぞいたら1バイトのペイロードのフレームばっかりだった、 っていうのなら、単にソフトがNagleのアルゴリズムをOFFにしたのかも知れないし、 単純にTelnetだったのかも知れないし、本当に必ず1バイト1フレームなら糞だよね。 PICマイコンの電子工作キットかなんかで、最初から組み込まれているTCPスタックとかか?
726 :
716 :2010/02/09(火) 20:41:36
>>723 デバイスはいわゆる工業デバイスで、基本的な動作は電波で読み取ったデータを
ホストに垂れ流す様なデバイスです。 だから元々意味のあるデータの単位はけっこうな
大きさがあり、プロトコル的に1バイトのデータに意味のある事は絶対にありません。
>>725 っていうか、ものすごく単純なTCP実装であってNagelどころか送信側のTCP窓が1バイト
に固定してあるんじゃないかという気がします。
納期に追われて多バイト送信のバグがとれなくて1バイト送信だけ生かして納品した機械だったに一票w
728 :
723 :2010/02/09(火) 20:56:07
なるほど
元々UARTで吐くのを、強引にTCPで出してみました的な雰囲気。
ブロッキングデバイスとストリームの区別もつかない香具師がいるのか
> ブロッキングデバイス 斬新なデバイスを引っ提げて期待の新人乱入。
ACKが返るかタイムアウトするまで PCIバスをブロックし続けるような感じ。
違うよ ACKが返るかタイムアウトするまで 全てのリソースをブロックする
500個程度のURLにタイムアウト4秒でHEADメソッドを送ってるんですが、 途中から、応答が返ってこなくなります(すべてタイムアウトになります) これってISPの制限だったりするんでしょうか?
攻撃とみなされてブロックされているんだろう。 ブロックしているのは、加入ISP、攻撃を受けているサーバ、もしくはお前のPCのPFW。
>>735 ありがとうございました
PFWという発想はなかったので参考になりました
それと.netのSocketクラスを使っているのですが、
Connect()のタイムアウト値を設定する方法ってありませんか?
送信と受信はSend/ReceiveTimeoutで指定できるのですが、
Connect()のタイムアウトまでは指定に関係なく20秒程度かかります
>>727 ごめんなさい。マジでそれ出荷したことあります。
性能要件を満たしてりゃ何も問題ない
納期遅れより1000000000000倍まし
そこまでの差は無い
車輪がスタックした
嫌がらせデバイスで、送って来たパケットを全部1バイト1フレームに変換して送り返すルータとかあったりしてw つーか普通にipsでそういう攻撃防御のシーケンス有りそうw タイムアウトぎりぎりまで遅延して再送させまくって侵入を遅らせるとか。 rst返して叩き切るのとか、何も返さないで捨ててしまう火壁より立ち悪いなw
pingでbroadcastするのは流行ってたな
smurfなつかし
C# .NET の勉強がてら、sniffer もどきを作っていますが Raw Socket でパケットを監視していると、時々受信できない場合があるようですが 実際に通信しているアプリケーションでは無事に受信しているようです こういうことはあり得るでしょうか? ぐぐってみると、Raw Socket ではパケットを取りこぼすことがある、といったような記述が 二、三見つかりましたが、これと同じ現象かどうか判断がつきませんでした
rawsocketはunixしか使えないものとおもってた
あり得る
あり得る 大抵はプログラムの書き方が悪い
750 :
746 :2010/02/13(土) 07:44:12
ありがとうございます やっぱり自分のチョンボですかね・・・ 受信したときに呼ばれる非同期のハンドラの処理が重すぎて 次のパケットの受信に間に合わない、ということが起きてるんでしょうか?
wininet関連の関数でやりとりする要求ヘッダの中身をいじるにはどうすればいいのでしょうか? 追加ヘッダに関しては引数で指定できるのですが、それ以外の項目のいじり方がよくわかりません
753 :
751 :2010/02/13(土) 11:40:09
自己解決しました
>>752 まさにそういうやり方でやってるんですが・・・
裏で他のプロセスががしがし通信している状態で
特定のホスト・ポートとのやり取りだけを検出して表示するようにしたところ
大部分は表示されるんですがところどころ抜けているようです
ほかのモニタソフトでも同じように抜けるのかどうか試してみたら? ほかので抜けないんならどこかにバグあり ほかのでも抜けるんならマシンスペックが足りてないのでは?
winpcapは使わないの?
実は UDP でした とか w
>>757 raw socketの挙動がudpか否かで変わるとは初耳だな。
759 :
746 :2010/02/13(土) 18:30:32
>>755 WireShark ではちゃんと取れてますね
ということは作りが悪いのか・・・
こちらに置いてあるソースを元にしていじっています
tp://www.stackasterisk.jp/tech/program/howtosniff01_01.jsp
やりたいことは、あるアプレットがサーバと送受信している内容を監視して
電文の内容に応じてファイルに保存したりする、というようなものです
確立されているソケットの間に割り込んでプロキシサーバのような動きが出来ればと思いましたが
出来るかどうかもわからないので、とりあえず sniffer のような動作を目指します
パケットを受信するたび、送信元/先どちらかのIPアドレス+ポート番号が監視対象サーバのものであれば
画面に表示し、そうでなければ捨てる、という処理にしたんですが、アプレットの動作から判断して
当然受信しているはずの電文が、ツールで表示されないことがあります
すべてが取れる/取れないのではなく、取れたり取れなかったりするのは、ネットワークの負荷等
環境の差異によるものであり、高負荷の場合を考慮していない設計であるのが問題なのでしょうか?
どういった方向で解決すべきなのか・・・ WinPCap も試してみるべきですかね
>>756 WinPCap でもいいんですが、出来れば事前にインストールの必要のない
Raw Socket だけでやりたいです 無理なら諦めますが
> パケットを受信するたび … 画面に表示し こんな事やってたらこぼすのは当たり前。
761 :
546 :2010/02/13(土) 19:22:29
>>760 表示といっても、時刻、送信元/先IPアドレス・ポート番号、データ長、データの先頭16バイトの16進ダンプを
ListView に追加するだけなんですが、これだけでも重すぎますか?
試せばいいじゃん
>>761 パケットを取るスレッドはBackgroundWorker使うとか
764 :
723 :2010/02/13(土) 21:34:01
ListViewは重たそうだな。 あれは案外というか、1万件くらい登録したら分かるが激重 (オーナードローで無ければの話だが。) 手っ取り早く表示をやめてファイルに落として抜けるか見るとか。 それが原因ならメインスレッドの優先度より高いスレッドで受信して、一旦ファイルに全部はいてから、 メインスレッドでチンタラ表示させてみればいい。
766 :
746 :2010/02/13(土) 21:55:26
>>764 ズバリそれだったようです
試しに、パケット受信時に ListView に載せるのをやめて、データを内部で保持するのみとし
停止後にまとめて表示するようにしたら、今のところ取りこぼしは発生していません
表示に時間が掛かっているとは、
>>760 氏をはじめ皆さんの慧眼に恐れ入るばかりです
あとは溜め込んだパケットを解析する処理をどうするか、ちょっと悩んでみます
皆様、ありがとうございました
あ、間違えた。オーナードローじゃなくてオーナーデータだ。 そっちなら激早。
769 :
746 :2010/02/13(土) 22:19:05
>>767 わかりました!
>>768 .NET 2.0 でいうところの仮想表示モードというやつでしょうか
これから勉強します ありがとうございます
透過型ではないのですがローカルに保存した2chのDATファイルを要求に応じて 成形してブラウザに返す簡易Httpサーバーを作りたいのですがどの辺から勉強すればいいでしょうか?
作成言語はC++(VC++)です
>>772 そんなレベルからですか・・・
.netだとわりと簡単だったのでそれと同等の物をC++で書いてみようと思ったのですが・・・
こういうライブラリを使うと簡単とかはないですかね?
2chからDATを取ってくる部分はwininetで書いたのですが・・・
>>774 よくわかりましたねw
サーバー部分もなんとかなりそうです。
777 :
デフォルトの名無しさん :2010/02/16(火) 10:02:16
便乗質問だがwinsock,wininet,winhttp(ver1,ver2)とあるけどどれで 過去の互換性とかどんな物かね? winhttp ver1はXP以降 winhttp ver2はvista以降 となってるけどwinsockとwininetがよくわからん
winsockは過去の遺物
え?
まあ過去の遺物がいつまでも使えるのがMS製品のいい所でありみんなが使ってる理由でもあるけどな。
ありがとうございました
winhttpで簡易webサーバーを作る際について教えてください。 ブラウザから所定のurlを要求するとhtmlファイルを送るという基本動作については問題なく動作しています。 ところがブラウザに送ったhtmlのヘッダにcssやjsを二つ以上指定してあると その要求に対する対応処理がおかしくなっています。 ブラウザ サーバー html要求->html要求を受信
途中になりました。 ブラウザ サーバー html要求 -> html要求を受信 ↓ ファイル検索 ↓ html受け取り <- html送信 ↓ html解析 ↓ cssx2 jsx1要求 -> cssx2 jsx1要求受信 ← ここがおかしくなる 要求はファイル分(cssx2,jsx1)分くるようなのですが、 RequestIdを見ると3つとも同じでした。 この辺をうまく対応しないと駄目なんですかね? というか方法がさっぱりわからない・・・
>>780 だが時に winsock.h と winsock2.h が混在してコンパイルできなくなる罠が。
せめて1週間は試行錯誤してから聞けよ
keepalive とか サーバー側から close とかでぐぐれ
winsockの時代は終わったのか winhttpとやらのほうが使いやすいのかな Cにも組み込めるんだよね
つーか、winsockをhttp限定だとおもってるのか?
そもそも、winhttpって、 wininetと同じでwinsockより一段上のレイヤだろ。 内部的にwinsockを使ってると考えるのが自然だと思うんだが。
>>786 ありがとうございます。
Connection: closeを送っても結果は同じでした。
実はその後がありまして・・・
良かれと思って入れたマルチスレッド化を止めたところ問題ないく動きました・・・・
うーむ・・・この辺の仕組みを解説してるようなところはないでしょうか・・・
もう bind→listen→accept→fork でいいじゃん
マルチスレッドがよく分かってないなら、使わない方がいいよ マルチスレッドって何も考えずにデータを共有できるから便利そうに 見えるけど、競合問題を起こさないように作るのは初心者には難しい
大事なことは先に言え
>何も考えずにデータを共有できるから ???
マルチプロセスだったら何も考えずには共有できない
マルチスレッドまともに書けない奴にマルチプロセスで書かせた所で 力業で固めたゴミみたいなプログラムが出来るだけだろ。
*nixがゴミ溜めなのは同意
CoInitializeEx云々とか、予想してみる。
マルチスレッドってデータ共有とか ただスレッドごとに違う領域にデータ書き込めばいいだけだろ
それ共有っていわねぇし
メモリ領域は共有だろが
OSも共有してるし筐体も共有してる罠
仮想化とか共有無茶し過ぎだしな。
複数のインターフェイスをもってるマシンで、bindさせたい場合、 インターフェイス別(それぞれのIP別)にソケットを作ってbindしないとダメですか?
ワイルドカードでbind出来る。
WinSockのWSAAsyncSelectで FD_CONNECTでsendしても問題ない?
ローカルで動くListener系鯖の待ちうけアドレスとしてlocalhost:8080などを使いますが p2proxyなど同様のローカル鯖タイプが使っている場合もあるので別のアドレスを 使いたいのですが可能なのでしょうか?
可能です。
なるほど どのようにすればよいのでしょうか? wininetを利用しています。
ググレばいいと思うy
Listener系鯖、ローカル鯖ってなんだろう。関鯖にブランド勝負挑む新鋭か?
ソフトの使い方はスレ違い
ローカルで動くListener系サーバソフト(って何?)のポートを変えたいという相談かと思いまして。
自分でコード書いてるなら自分で指定しているポートを変えればいい 自分で書いたんじゃ無けりゃそのライブラリなりアプリの説明書読むしかない
ってアドレスかよ。 アドレスは動かすPCで追加してそれ指定すれば?
えっ
えっ
819 :
デフォルトの名無しさん :2010/02/24(水) 23:04:24
教える人は自分が偉くなったと勘違いをしているのか…
教えられる人よりは偉い
うん、気に入らない奴には教えない。
ゆとりはそんなことも知らないんだよな まあ左翼の被害者だからかわいそうだけど
結局質問者は8080だけを変えたいのかどうなのか
板違いの話題をわざわざ聞いてまで教える必要は無い。
ネトアサも巣にかえれー
Winsockでサーバとクライアントを作り、通信を行いたいのですが、 WSAAsyncSelect後のFD_CONNECTでエラーが返ってきてしまいます。 丁度20秒で接続が切れたのでタイムアウトしたのかと思っているのですが、 タイムアウトした原因は何なのでしょうか? とりあえずの127.0.0.1での接続には成功しています。
アドレスが間違っているとか ファイアウォールやらルータやらにブロックされたとか
>>829 ありがとうございます。
パソコンAのポートを開放し、パソコンBにウイルスチェックのプログラムが起動していたので
それを切ったところ、正常に繋がりました。(両方が原因?)
ただ、パソコンAがサーバでパソコンBがクライアントの場合は正常に動くのですが、
パソコンBがサーバでパソコンAがクライアントの場合は繋がりませんでした。
サーバ側は接続で使用するポートを必ず開放しなければならないのでしょうか?
?
>>830 クライアントマシンむけのファイアウォールソフトは
待ちうけポートは遮断がデフォルトな場合が多いね
サーバーを動かす場合は開放してやってください
なるほど どうも有難うございます。
プログラム以前のレベルだな。
835 :
デフォルトの名無しさん :2010/02/27(土) 14:54:56
WinSockでファイアウォールを越える方法を教えてください。
まずファイアウォールのポートを開放します
次に手を洗います
そしてパンツを脱ぎ
正座して
自分の尻を両手でバンバン叩きながら白目をむき
UPnPと叫びます
PCを購入する
ファイヤウォールの電源を落とす。 管理者にファイヤウォールで障害が発生したとメールを送り電源を落とさせる。 掃除のおばちゃんにメールを送り、ファイヤウォールの掃除を挿せるw
845 :
デフォルトの名無しさん :2010/03/01(月) 02:18:43
いいから真面目に語れよ。 age
846 :
デフォルトの名無しさん :2010/03/02(火) 20:51:45
復活あげ
チョンに攻撃させて、ファイヤウォールを落とす。 にちゃんってまさか丸裸で繋いでるのかね?
botのアクセスとかクルーザーのアクセスを全部禁止したいのですが プログラムをどのように書けばよいでしょうか?
惜しい。botをboatとtypoしていれば完璧だったというのに。実に惜しい。
>850 パターンマッチについて勉強しな botやクローラと思われるもののパターンに当てはめて弾くという 泥臭い方法しかない 文字列もネットワークも抗ウィルスもみんな同じ
いたちごっこの泥沼田な。がんがれ。 F5連打も対応しておいたほうがいいかもな。
プロバイザーに相談しる
>F5戦闘機2機が墜落、3人が死亡 ネタだと思ったもれ
どう見ても謀略でしょこの組織力と計画性は 中国、韓国にとってマスコミをコントロールできても1000万人が見る ネットの掲示板でこれだけ民主の悪事を暴露され続けたらせっかくの 日本侵略計画が失敗しかねないから。 ここで法的な制裁を厳しく加えないと民主党に都合の悪いニュースや危険な 法案を通そうとする時に、こじつけの理由でサイバーテロを繰り返すように なるだろう。 韓国は中国共産党の思惑通り反日思想や歴史捏造で冷静な思考が出来ず に動いてしまっているが、このまま愚かな事を続けていると北朝鮮と同じ 道を辿るぞ。
韓国のバカと同様、おまえも巣に帰れw
在日も半島に変えればいいのに。日本嫌いなんだしw
>>859 「旅費、向こうでの仕事、あと当面の生活費を要求するニダ!」
まあまあ。 特別在住許可は、南北分裂して帰りにくいから、特別に許可してやってるんだし 半島統一までは悪さしなけりゃ置いてやろうぜ。 統一したら置いてやる意味無くなるけどな。
ネトウヨはスレタイを読むこともできないことが確認されました。
【誘導】 ローカルルール この板はプログラムを作る人のための板です。 ネタ、板とは関係の無い話題はご遠慮ください。
どのあたりが誘導なんだ?
プログラマは在日率高そうだからなぁw
利権絡みはチョンの企業が噛んでる事は多い。 社長と患部がチョンとかw
>>866 それで思い出した。
前の会社でチョンとの仕事した時に、2010年にバグるように仕込んでたわ。
今頃2000年になってるはずだが、どうなったかな。
ちょにーw
現在、エコークライアント及びエコーサーバの作成しています。 ipconfigコマンドで調べたIPアドレスを使用して、 同じパソコンで起動しているサーバに接続しようとしているのですが、 10061(接続を試みましたが、強制的に拒否されました。) と表示されて繋がりません。 また、サーバプログラムを起動していなくても同じエラーが表示されます。 一体何が原因なのでしょうか?
ファイヤーウォールでふさがれてないかい?
プログラム以前の問題だな。ネットの勉強してこい。
おまえらならもどき含めてFirewallを色々作った事あると思うけど そんなおまえらがFirewallを作る時に参考にしたサイト教えれ
ソース読めよ
今月のWeb+DBマガジンのモダンネットワークプログラミングについての特集読んだ? イベント駆動のパターンってタスクシステムと同じだと思うんだけど、違うのかな? 筆者は閉じこもらずにゲームプログラミングのパターンとかも勉強したほうがいいと感じた。 特集自体はすごく分かりやすくまとめてあって役に立った
禁句出たね
>>874 読んでないからだろうが
>筆者は閉じこもらずにゲームプログラミングのパターンとかも勉強したほうがいいと感じた。
文章明快意味不明なんだが
俺も読んじゃいないが
>>874 お前もゲームばっか作ってないで勉強しろよ。
イベントドリブンなんて大昔からある。
本物のプログラマーはひとつの概念に複数の名前がつけられるの嫌う タスクシステムもイベント駆動パターンも、オリジナルの呼び方をすべき
コルーチンみたいな"継続"をC/C++で強引にやろうとしたものが、 タスクシステムって呼ばれてるんじゃないの?
>>880 > コルーチンみたいな"継続"をC/C++で強引にやろうとしたものが、
> タスクシステムって呼ばれてるんじゃないの?
で、そのコルーチンみたいな"継続"をC/C++で強引にやろうとしたものをなんて
呼ぶんだ?
>>881 コルーチンはコルーチンだろ
Cのcoroutineってキモく感じるんだよな
defineにcase文がありライン番号で分岐させるって俺的には可視性が悪く
キモクがんじるんだよな。defineの悪用だろあれ
お前らもキモク感じるよな
それは単に一つの実装がそうなってるだけであって ちゃんとコンテキストを差し替える実装もあるぞ GNU PCLとかな
すまんGNU関係なかった libpclに訂正する
>>885 そんなのあるのか。知らんかった。
これOS非搭載のマイコンで使えるのか?
面白いね。 シグナルとsetjmp,longjmpが使えればいいだけみたいだね。
大昔から何種類もあるぞ。
コルーチン、ネットプログラムでよく使っているの?
同じものがいろいろな名前でよばれているのを気にしないやつは 同じ機能の関数がひとつのシステムに存在していても許せるやつなんだな おおらかでいいやつだけどプログラマとしては二流だよ
Firewallを作る時に参考にしたサイト教えれてよ
>>886 OS非搭載のマイコンなら、それこそスタックレジスタ弄ればいいだけだろ・・・
神は自らタスクるものをタスクる
>>894 もう遅い
このすれでは タスクシステム も イベント駆動パター も コルーチン ってよぶことにきまったんだよ
ハンゲの大富豪の相手の手札が分かるソフト作ってくれ
>>896 アホなこと言うな。コルーチンは独立した概念だ
イベント駆動、タスクシステムとはまったく別のものだ
つーか喧嘩すんならここでやるな・・・
タスクシステムの先祖だった「ジョブコン」こそコルーチンを非常にプリミティブな環境で 実装したものだけど、「タスクシステム」は単なるコールバック。
決めの問題だから決めちゃおう イベント駆動パターン にします 以上
903 :
デフォルトの名無しさん :2010/03/07(日) 14:37:00
>>897 ほどのものを作れる人はここにはいないだろうな
気付くの遅すぎ
相手のコンピュータにワームでも仕込んでおけばいいだけじゃんJK
>>905 やってみろ。
手元でやったとしても、バイナリしかないプログラムの
暗号化された通信内容を覗くのは面倒な話だぞ。
どこになにがあるかわからないメモリを覗くのはもっと面倒だ。
しかもapacheみたいに解析のとっかかりになるソースが
あるわけじゃないから途方もない試行錯誤になるぞ。
対戦相手の家にWebカメラを仕込むんだよ!!!
908 :
906 :2010/03/07(日) 17:11:08
>>907 俺の負けだ・・・ 固定観念で解決は図れないんだな。反省するわ。
古い地球人かよ
>>906 別にそんなことせんでも相手のデスクトップのSSとれば?
911 :
デフォルトの名無しさん :2010/03/07(日) 18:53:15
画像キャプチャ型のスパイウェアなら存在するけどな まあ、大富豪ごときで相手のPCに仕込むメリットは無いだろうが
どうやって仕込むかが問題だろ
相手の手札が分かるソフトをやるといって仕込む
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
CかC++で動画をストリーミングするプログラムを作成したいのですが 参考文献など教えていただけないでしょうか?
VLCのソースでも読めば
ここでチートやそれに准ずるものができたとして、俺が相手の会社に通報するから 対策とチートのいたちごっこが始まるだけだ
>>919 冷静に考えたらカウンティングし放題だよな
自分で大富豪の提供鯖立てれば見放題だろう。 博打の胴元が見放題なのと同じ。
ハンゲの大富豪の話じゃなかったのかよ そりゃ自分でやればなんでもアリだよな それの何が楽しいの?馬鹿なの?
>>919 オセロならコンピュータに代打ちさせると大体勝てる
それの何が楽しいの?馬鹿なの?
ハンゲ株を51%以上取得すればいいんじゃね?
epollっpollとどうちがうの?
いいpollとふつうのpoll。 つか、なんでmanページすら読まねぇんだ。
これはいいpoll
誰かハンゲ大富豪の支援ソフト作ってる?
>>925 ロボコードみたいなもんやね。
オセロはつまらんけど、麻雀は燃える。
>>928 違いについては書いてない。
使い道の参考になる違いが知りたい。
>>932 epollのeはエッジのeです。
まぁエッジトリガなんざ使わんけどな!
無限待ちとかこえーし
>>935 筑波大がすばらしいのか、こいつだけが特別なのか。
世界で唯一、開発者の名前を冠されたウイルス(Trojan.Hirofu)の 開発者(古田泰大)も筑波。
>>935 学生なんだな。かなり優秀だな
優秀な学生はアメリカの優秀な大学院に行って、そこの恵まれた環境でさらに
能力を伸ばして欲しいものだな
そういえば、Rubyやソフトイーサーを作ったのも筑波だよな
____ /__.))ノヽ .|ミ.l _ ._ i.) (^'ミ/.´・ .〈・ リ .しi r、_) | 筑波大は(ry | `ニニ' / ノ `ー―i´
東京教育大学卒いる?
いらね
筑波は隔離されてて俗世間の誘惑が少ないからなw 研究にはいい所かもしれん。若い時にしか出来ない大切な機会を失う気もするけど。
筑波の3Sって言葉もあるが。
まあ田舎はほとんど3Sだろう。大した娯楽も無いし。
>>23 筑波の先生は
よく未到のマネージャーもやってたりするね
うめてみる
うめてみる
うめてみる
このスレ的には memcpy
sage
初心者なんですが、ソケット通信の覚え方でいい本とかありますか? JAVAでソケット通信をしてみたいと思っていて、 昔、JAVAネットワークプログラミングという本を買ったのだけどソースが長くて、 理解力がないのでよくわかんなかったんです。 ゲームプログラミングが趣味なので、アプレットでソケット通信を使ったゲームとチャットを作れればいいかなと思っています。
Amazonでその本検索したら「基礎からわかるTCP/IP Javaネットワークプログラミング」ってのが あったんだけど、その程度の調査も人にやらせるつもり?
実は名前が似てるけど秀和システムが出版している本を持ってます。 954が教えてくれた本は名前が似てるけど別の本(OHM出版)。 とりあえずコメントありがと。 とりあえずソケット通信の関係の本は、クラスの説明がちょこっとしてあって、 後はいきなり完成したコードが載っているので、 少しずつコードをつけたしていって プログラムをかける本だとわかりやすいかなと思う。 調査を人にさせてるみたいな感じだったらごめん。
描き忘れたけど とりあえず本屋で「基礎からわかるTCP/IP Javaネットワークプログラミング」 を立ち読みして、わかりやすそうだったら買ってみようかなとおもってる。 田舎なんでコンピュータ関係の本がそろってる本屋があまりないのがつらい。
Amazonで買えばどんな田舎でもすぐに届くのに。 2,600程度の本も買うのに悩むくらいだったら、Webで入門ページ探して読んだら?
素人ながらプログラミングが趣味だけど独学なんでプログラミング関係の本は80冊
くらい部屋にたまってる状態。
買った本のうちどのくらい読んだかというと実際熟読したのが20冊ぐらいで、
辞書代わりに使ったのが20冊ぐらいあとは買ったけどよくわかんないからそのまんまという状態。
AMAZONはすぐ届くんだけど、中身を確認してから買えないのがつらい。
結構プログラミングの本は、自分にある程度知識がないといい本でも読みこなせなかったりすると思う。
ところでWEBの入門ページって
ttp://www.hellohiro.com/socket.htm みたいな感じかな。
理解出来ないレベルならゲーム作るのは無理だと思うよ。 中身は本屋で見てから買えばいいだけ。 近くに本屋も無い田舎なら、都会の大きな本屋の近くに引っ越せ。
>>959 そんな夢のないことを・・・。
まあ確かに大したゲームは作れそうにないのは認めるけど。
通信関係の技術ってセキュリティとか穴があったらまずいから
その辺の関係で初心者には難しく感じるんだろうか。
通信関係の技術ってセキュリティとか穴があったらまずいから
とりあえずレンタルサーバー使ってたらある程度はセキュリティの心配しなくていいような気もするけど、 素人にはちょっと敷居が高い技術なのかな。
DOS攻撃以外はちょっと勉強すれば防げると思う と言いつつセキュアド受かったことないけど セキュリティーよりハック対策が大変じゃないか?
とりあえずレンタルサーバー使ってたらある程度はセキュリティの心配しなくていいような気もするけど、
はははまたまたご冗談を
自分で見れない部分は業者におまかせなので負担は少ない。当たり前。
ウイルスを仕込まれるのと同じなのに レンタルサーバも大変だな
逆だな。レン鯖なので自分の不注意が鯖落ち招いて、大騒ぎに成る。 専鯖なら自分一人だが、共用鯖だと大迷惑。
客の不注意が原因で落ちるような、弱っちいサーバを提供している業者が悪い。
サーバを運用したことない奴はなんとでも言うわな
と、弱っちいサーバを提供している業者のぼやき。
ま、俺の話はぼやきといわれてもいいさ 一度、自分で運用してみな?
975 :
デフォルトの名無しさん :2010/03/20(土) 04:07:33
なんか突っこむ気も起きない 帰ってくれるようだから何も言わないけれども
鯖なんて負荷描ければ落ちるがな。 集合住宅に一人でも気違いが入れば、停電したりぼや騒ぎで騒がしく成るのと同じ。
2chですら韓国のF5アタックで落ちるからな
にちゃんねるは世間一般から見れば気違いの巣窟らしいし。 にちゃんやってる男の人ってちょっと(ry
パチンコは世間一般から見れば気違いの巣窟らしいし。 パチンコやってる男の人ってちょっと(ry
結婚してる人ってかわいそうな人の巣屈らしい そして、結婚してない貴族を夫婦で罵り合う最低の集まりって世間一般では定義されてる
982 :
デフォルトの名無しさん :2010/03/21(日) 18:18:40
戦争するしかないね
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
三次元でもできませんが何か
988 :
デフォルトの名無しさん :2010/03/22(月) 12:16:02
winsockサーバーで接続者のIPやポートをchar配列に代入するには? acceptで渡した構造体に情報が入ってるらしいけど どうやって文字列にするのかわからん
んなアホな
∧∧ ヽ(・ω・)/ ズコー \(.\ ノ 、ハ,,、  ̄
inet_ntoa
sockっと梅。
995
996
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。