ネットワークプログラミング相談室 Port30 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2014/10/31(金) 07:57:16.24ID:2NZQQB6u
主にソケットに関しての質疑応答スレッドです。

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辺り
足りなかったら適当に付け足してね

前スレ
ネットワークプログラミング相談室 Port28
http://toro.2ch.net/test/read.cgi/tech/1334736934/
ネットワークプログラミング相談室 Port29
http://peace.2ch.net/test/read.cgi/tech/1351670708/

関連スレ
ネットワークプログラミング雑談
http://toro.2ch.net/test/read.cgi/tech/1235800707/
2016/03/11(金) 22:22:49.96ID:dj3uwIGp
以下のようにVBSでURIで指定したサイトからデータ取得するものを作っています。

Set oReq = CreateObject("MSXML2.ServerXMLHTTP")
oReq.setProxy("2", PROXY_SERVER, "localhost")
oReq.setProxyCredentials(USERNAME, PASSWORD)
oReq.Open "GET", URI, False
oReq.Send

これを1度だけ実行なら問題ないのですが、繰り返し実行
すると5回目くらいに最後のsendのところで、
「無効または認識されない応答をサーバーが返しました」
というエラーが発生します。

これはプロキシサーバの処理能力をオーバーしたということでしょうか。
それともデータ取得先の問題でしょうか。
2016/03/11(金) 22:41:07.98ID:hqUiUQ5D
winsock2に書き換えてみたら
2016/03/13(日) 03:45:38.04ID:IqX1stSF
>>211
シングルスレッドと同じだよ、たぶんw
2016/03/14(月) 17:59:59.28ID:2pvjXVi/
>>214
ありがとう!
2016/05/16(月) 18:29:46.75ID:PpqHj2Tc
書いて
217デフォルトの名無しさん
垢版 |
2016/06/10(金) 22:41:04.16ID:2dcerofp
Win10 Home、Borland C++で

#include <MAPI.h>
typedef ULONG (WINAPI *MAPI_SEND_MAIL_PROC)( LHANDLE lhSession,\
ULONG ulUIParam, lpMapiMessage lpMessage, FLAGS flFlags, ULONG ulReserved );
 MapiRecipDesc sender;
 MapiRecipDesc Receiver;
 MapiFileDesc AttachFile;
 MapiMessage Message;
 (略)
 HINSTANCE hInst;
 hInst = LoadLibrary( "mapi32.dll" );
 if( hInst == NULL )
   printf("mapi32.dllがロードできませんでした。送信に失敗しました。\n");
 else{
   MAPI_SEND_MAIL_PROC MAPISendMailProc = (MAPI_SEND_MAIL_PROC)GetProcAddress( hInst, "MAPISendMail" );
   if( MAPISendMailProc( 0, 0, &Message, MAPI_DIALOG, 0 ) != SUCCESS_SUCCESS )
     printf("送信に失敗しました。\n");
   else
     printf("送信完了しました。\n");
 }
 FreeLibrary( hInst );

メールを添付ファイル付きで送信するプログラムを組みたいんですが、
MAPIで「規定のプログラムの設定がされてないよーん」的なメッセージが出て出来ません。
設定画面から「メール」で規定のプログラムを設定しましたが変わりません。

なんでざんしょ。
2016/06/11(土) 16:49:05.52ID:iSPIsEmM
Win10で仕様変わったんじゃね?
219デフォルトの名無しさん
垢版 |
2016/06/11(土) 17:29:15.80ID:9JtWh0jS
>>218
やはり10の問題でしょうか・・・。

セキュリティ会社に出向することになったんで、ollydbgでこういった動きで漏洩させるプログラムをデバッグで追っかける
準備として自分のメールアドレスにテストメールを送るEXEを作りたいだけなんですけどね。
これが10の問題なら逆にMAPIではできないというのを知れたのでよかったのかな・・・・。
2016/06/11(土) 17:46:34.25ID:iSPIsEmM
既定のメールソフトを何にしたかにもよるな
221デフォルトの名無しさん
垢版 |
2016/06/11(土) 17:51:02.59ID:9JtWh0jS
Thunderbirdです。
あー、それもありえるかもなぁ
winのデフォルトインストールメーラーにしてみます。
2016/06/11(土) 18:10:51.82ID:9JtWh0jS
変わらずでした。
なんかワンクッション必要なのかなぁ。
223デフォルトの名無しさん
垢版 |
2016/06/12(日) 09:53:25.09ID:xN9NR8mn
MAPI っつったら Outlook 一択だろ常考。
OutlookExpress じゃないぞ。
Office に付いてる方だぞ。
2016/06/12(日) 14:57:58.41ID:iBZ6WLYB
mapi32.dllって64ビット環境でもちゃんと存在してちゃんと動くのか?
2016/06/12(日) 19:42:17.11ID:ARY0ZRO5
>セキュリティ会社に出向することになったんで
社名を教えて、そこの製品を使わないようにするから
2016/06/15(水) 22:57:03.60ID:stQmdqho
大事なところの担当にはならないから大丈夫だよ。
2016/06/16(木) 11:55:18.21ID:vPpNXLWB
ここで適当に同業他社の名前出しとけばライバル蹴落とせるなw
2016/06/18(土) 12:39:39.21ID:DZXNqFsy
ソケットの勉強をしようと思いクライアント側のプログラムを作成しているのですがなぜ
最後にソケットを切断(close)しなくてはならないのですか?
また、closeしなくてもプログラム自体は動くかと思うのですが、closeされていないこと
を確認するにはどのような方法がありますでしょうか?(netstatコマンドなどを使えば良
いのかと思ったのですがわかりませんでした)
2016/06/18(土) 12:44:35.11ID:3Ro7Pv4n
closeしなかったらプログラム終了時にシステムが自動的にcloseするというだけ
2016/06/18(土) 14:58:36.89ID:AGMP56Qn
UDPならcloseせんでもええ
2016/06/18(土) 17:08:05.09ID:Tk6yOox9
closeしなかったらリソースが減っていくだけ
2016/06/22(水) 23:22:05.08ID:d91p5TSZ
shutdownも必要ではなかったか?
今はもう不要?
2016/06/22(水) 23:36:53.27ID:X6XCfxlz
アホさんいらっしゃい
2016/06/23(木) 11:45:23.37ID:332nxUAD
socketのshutdownは必要
2016/06/23(木) 13:34:50.61ID:mZfLfxkS
closeって事ですか
2016/06/23(木) 20:50:20.73ID:xQuzcWOo
shutdownってこと
2016/06/23(木) 21:54:35.99ID:9Wm8FTvm
アホってこと
2016/06/30(木) 23:45:26.79ID:167OFloa
日本人は無料通話アプリを作れません。
239デフォルトの名無しさん
垢版 |
2016/07/01(金) 11:00:34.68ID:wNtMwO0s
NOTTV終了おめ
2016/07/01(金) 12:31:02.44ID:c/ihY094
アベバに変ったの?
2016/07/01(金) 13:10:34.66ID:SE0g3mIr
>>238
スウェーデン人乙
2016/07/29(金) 21:37:13.05ID:sAKii1G0
libevが分からない
asyncの自前イベントでどう設定してイベントループからどうやって起こすのか・・・
詳しい人が居ましたら関係する関数を教えてください
2016/07/30(土) 01:23:16.97ID:5Uiy2ytH
いません
244デフォルトの名無しさん
垢版 |
2016/07/30(土) 13:03:54.68ID:NnN7Vre0
Node.js
2016/09/03(土) 19:04:46.58ID:YfCK8gma
教えて
246デフォルトの名無しさん
垢版 |
2016/09/03(土) 19:35:16.09ID:w8mOGCX1
goo
247おしえて
垢版 |
2016/09/06(火) 18:40:03.48ID:FxmSmkKd
1つのネットワークカードに2つ以上のipアドレスを割り当てて、1つのサーバにその割り当てた別々のipアドレスで同時接続は可能?
同じアプリを2個以上起動して異なるipアドレスで同時接続したいわけです
2016/09/06(火) 18:44:45.76ID:oFd6kpVy
横道にそれるけど
同じIPアドレスだけど listen ポートを別にすることはできないのかな?
2016/09/06(火) 19:00:22.30ID:sQOv13Gi
>>247>>248
可能
WindowsでもLinuxでも出来ない理由はない
2016/09/06(火) 19:31:28.29ID:oFd6kpVy
よくよく読んだら 複数クライアントが 1つのサーバーに接続
クライアントのおのおので ipアドレスを別にしたい が 同一PC中の同一ネットワークカードで
ということか
2016/09/06(火) 19:32:34.99ID:MfZbc6Jb
受信は問題ない
返信時に送信者アドレスがどっちになるかで
途中のルーターがフィルタしたりする可能性は無きにしも非ず
1枚のときにどっちのアドレスを優先させるか
あるいはどっちのアドレスから送信したことにするかを
プログラミングする必要がある
マルチホーミング考慮する必要もある
2016/09/06(火) 20:32:07.85ID:1XSUlqoQ
>>247-248
どっちも可能
ただし当たり前だけどアプリケーションで Listen するアドレスやポートを指定できる必要がある

>>251
受けたアドレスと異なるアドレスに送る TCP スタックなんて見たことない
2016/09/07(水) 08:47:36.21ID:sjjNPEW0
多重にクライアントを動かせない理由は何なのだろう・・・
254デフォルトの名無しさん
垢版 |
2016/09/07(水) 15:10:22.18ID:YSZpbVen
同じサブネットなのか違うセグメントなのかでも変わるな
2016/09/07(水) 15:12:29.55ID:Ur9IZRDe
変わらないけどね
2016/09/07(水) 15:18:36.62ID:/Xx9az9X
さすがにセグメントまで違えば通信できなくなるだろ
2016/09/07(水) 15:22:38.08ID:Ur9IZRDe
>>256
何を根拠にそんなことを言うのかなあ
セグメントが違えば通信できないならインターネットなんて全然成り立たないわw
2016/09/07(水) 16:12:00.52ID:g5K2Lr6r
1枚のNICに2つのセグメント振る香具師なんているのか?
2016/09/07(水) 16:21:07.47ID:8SeVjemL
メンテ用の機器繋いだ時一時的に振ったことあるなあ
ルーターだったかな、そっちのデフォルトのアドレスに合わせるために
2016/09/07(水) 16:57:08.31ID:Ekl9dhHV
vmwareとか使えば、見かけ上は別のものとして扱えるけど
そういうのではテスト出来ないのかな
2016/09/07(水) 20:15:42.28ID:2w88FCBz
>>253
ん?
クライアントは普通に多重で動かせる奴も多いぞ
少なくともネットワークの制限で動かせないケースはほとんどないと思うが
2016/09/07(水) 20:21:54.25ID:iwRLOaFu
>>261
>>247 に至った理由が何だろうね?って疑問だったわけで、深い意味はないです
2016/09/07(水) 20:22:00.08ID:2w88FCBz
>>257
ピントずれすぎ w
1つの NIC の話だから同一物理ネットワーク上に複数のセグメントを置く話
できない理由はないけど実験的にやるとか >>259 みたいに一時的にやるとか以外でそんな構成にすることはほとんどないと思う
2016/09/07(水) 20:27:31.48ID:2w88FCBz
>>262
>>247 はサーバーの話
1つの NIC では同一IPかつ同一ポート番号で待ち受け(Listen)できるのは基本1つだけだから複数のIPを振りたいって言う要求が出てくる
2016/09/07(水) 20:35:10.37ID:iwRLOaFu
>>264
てっきり クライアントの話かと思った
IP分けるよりListenポート分けるほうが簡単だし刹那的にそうするもんだと早合点
2016/09/07(水) 20:45:28.05ID:5LAjH7P/
ん?>>247

1つのネットワークカードに異なる2つのIPを割り当てて(IP1とIP2)
同じアプリを2個起動して(AとB)
1つのサーバーに同時接続(AがIP1で、BがIP2で接続)

だからクライアントじゃないの?
数は説明上2つに変えた
2016/09/07(水) 22:00:43.81ID:woOMwcnq
1枚のNICに複数IPの指定は出来るという事ではまずはお茶しましょう。
二つのIP与えて、アパシェのIPベースバーチャルホストなんてのもやりました。
http://good-stream.com/goodstream/server/apache/tips/ipbasevhost.htm
フル
2016/09/07(水) 22:10:37.87ID:Ur9IZRDe
>>263
ネットワークが絡んだ開発の仕事が多い俺は1つのNICに複数のセグメント
を割り当てるなんてごく普通にやってるんだが
2016/09/07(水) 22:43:34.41ID:woOMwcnq
ボンディングとかやぱ二枚刺しでルーターとかフィルターとかフィアオルをやる
ってが多いのかな。今でも
2016/09/08(木) 06:54:10.65ID:QwMnHPC3
>>266
あひゃ、改めて >>247 を読み直したら確かにクライアントの話だったわ
早合点は俺だった... orz
アプリが送信元IPアドレスを指定できれば可能だな
2016/09/08(木) 06:56:49.52ID:QwMnHPC3
>>268
実運用環境でやってるなら単なるバカ
実験やテストでやってるならたいして珍しくもない
2016/09/08(木) 08:49:16.34ID:dGUpQ5tJ
>>271
俺は開発環境でやってるけど
トポロジによっては実運用環境でも便利なケースはあると思うよ
2016/09/08(木) 21:16:26.26ID:D52YJnih
>>271
顧客がやれと言ったから設定した
それだけのことさ
警告はした
2016/09/08(木) 22:22:54.93ID:dGUpQ5tJ
そもそも警告したくなるような問題が発生しそうなケースが思いつかないんだが
>>271は単に「バカ」という言葉を発したたかっただけだろ
2016/09/08(木) 22:32:18.49ID:s+VkNmnn
そう言っちゃう人もいる事を理解して、無視してあげましょう。
2016/09/08(木) 22:33:11.71ID:siaRBrBq
>>273
ああ、作業者にはなんの責任もないから言われた通り作業してくれればいいです

>>272
> トポロジによっては実運用環境でも便利なケースはあると思うよ

その便利なケースとやらを説明してみ
2016/09/08(木) 22:44:08.37ID:dGUpQ5tJ
>>276
問題あるケースをお前が先に説明しろよ
2016/09/08(木) 22:49:27.01ID:dGUpQ5tJ
「問題ない」をなんで「問題ない」のか説明させようとするって典型的なアレだからな
ないものはないんだよただそれだけだよ
2016/09/09(金) 02:35:30.55ID:ogIb5/BU
なんだ説明できないのかよ w
運用環境の構成は可能な限りシンプルにしておくのが鉄則
その方が間違いも少ないし障害調査なども楽だから
2016/09/09(金) 03:27:23.58ID:vj6paJQh
んなもん使われ方だろうが。いろんな事情がある。
2016/09/09(金) 05:02:13.63ID:ogIb5/BU
そのいろんな事情とやらを書いてみ
って話
2016/09/09(金) 06:15:01.37ID:QrmkumON
パッと思いつくケースだと
2つのセグメントで構成されているシステムがあったとして各セグメントは閉じているんだが
両方のセグメントにアクセスするマシンを追加したい場合などに1つだけのNICで済むだろ
その為だけに2つのNICを持ってるマシンを用意するのとどっちがシンプルかって話だな

WindowsもLinuxも(その他大概のOSも)1つのNICに複数セグメントを割り当てることが出来るのに
その機能を使うのは「バカ」だって言うならその理由を書いてくれな
2016/09/09(金) 06:51:20.17ID:oGuibT0g
>>282
各セグメントは閉じてるのに
わざわざ混在させるのか
バカの発想って面白いな w
2016/09/09(金) 06:58:33.38ID:QrmkumON
お前はただ「バカ」って書きたいだけの難癖荒らし
2016/09/09(金) 07:18:51.71ID:oGuibT0g
バカって書いてる理由を書いてあるだろ?
もしかしてそれすら理解できてないのか w
2016/09/09(金) 07:39:42.84ID:vj6paJQh
バカはお前だよ。見た事ないんだろ。貧乏な現場とか、どうしようなない状況。
2016/09/09(金) 08:38:57.74ID:oGuibT0g
貧乏ならいちいちセグメントなんて分けるなよ w
てかNIC ぐらい買え
そもそも何かの目的があってセグメント分けてるのにそれをわざわざ混在させるなんて実運用でやるわけないだろ
2016/09/09(金) 09:03:33.63ID:puYtutU5
元質問からの疑問

1つのPC内に(loopback以外の)複数のアドレス A,B があり (※NICの枚数は問わない)
A経由で接続しにいく / AでListen する
B経由で接続しにいく / BでListen する
には、ソケット記述で制御できるもの? それとも上位の何かでコントロールしないと駄目?


後者の場合は WindowsとLinux 他 OSの事情がからみそうだけど
2016/09/09(金) 09:11:25.63ID:QrmkumON
>>285
あのね俺が書いた例は独立して機能してる2つのセグメントを「混在」させるわけじゃないから
WindowsもLinuxも(その他大概のOSも)1つのNICに複数セグメントを割り当てることが出来るのに
その機能を使うのは「バカ」だって言うならその理由を書いてくれな
使える機能を使えるところで使わない方がバカでしょ
2016/09/09(金) 09:13:26.83ID:QrmkumON
>>288
ソケットでやるならbindで出来る
2016/09/09(金) 09:20:54.52ID:puYtutU5
>>290
ありがとう
(bind ってそういうことだったのか。 漫然と使ってた)
2016/09/09(金) 10:45:15.03ID:lqKQnXfy
>>291
ちなみにアドレス0.0.0.0にbindするというのは「どのアドレス宛でも受け付けますよ」という約束事。 
293デフォルトの名無しさん
垢版 |
2016/09/09(金) 11:53:05.58ID:ZufuCknD
どいつもこいつもしったかばっかだし
ぼけもつっこみも自演くさい
2016/09/09(金) 12:10:06.63ID:D/rbZjJQ
>>293
おーけーじゃあしったかを指摘して訂正してくれ
できないならお前もしったかだよな
2016/09/09(金) 12:48:40.24ID:oGuibT0g
>>289
バカには見えないのかな?
念のためにもう一度書いとくよ

> そもそも何かの目的があってセグメント分けてるのにそれをわざわざ混在させるなんて実運用でやるわけないだろ
2016/09/09(金) 13:03:38.48ID:puYtutU5
ID:QrmkumON  の想定は
セグメントA のネットワーク網に ピンポイントで参加させるメンテPC
セグメントB のネットワーク網に ピンポイントで参加させるメンテPC
メンテPC を通して セグメントA と セグメントB を連結させるわけではない

メンテPCのNICには多重に割り当てるが、実質として選択的に配線し接続してる

こういうことでないの?
2016/09/09(金) 14:37:14.01ID:QrmkumON
すんません「バカ」連呼したいだけのアホに餌を与えちゃいました
もうこのアホはスルーがいいでしょう
こっちの質問には決して答えないんだから
>WindowsもLinuxも(その他大概のOSも)1つのNICに複数セグメントを割り当てることが出来るのに
>その機能を使うのは「バカ」だって言うならその理由を書いてくれな
298デフォルトの名無しさん
垢版 |
2016/09/10(土) 10:49:14.70ID:QUVRyXDh
>>295
"混在"はしない
"共存"(相乗りでもいいや)できるんだけど
もしかして君にはそれが判らないの?
2016/09/10(土) 11:23:26.31ID:uQ51/TWJ
>>296
各々のセグメントに繋ぐ度にケーブル刺し変えてるってこと?
DNS とかも全く使わないならいいのかも知れないけど普通はバッチファイルとかで切り替えた方がいいと思うけど

>>297
>>279 の内容すら理解できてない素人乙

>>298
> "共存"(相乗りでもいいや)
の定義書いてくれ
オレオレ用語で話されても困るから
2016/09/10(土) 11:32:00.20ID:nNi8wB7Z
出て行け
2016/09/10(土) 16:44:36.50ID:ZZX/BtRf
md5とかいう機能を利用すると、
ダウンロードしたファイルが破損、改竄されていないか確認できると知りました。

それはいいのですが、この機能はいつ使うんでしょうか?
仕事とかで、ソフトが改竄されていないか証明するために使うのでしょうか?
2016/09/10(土) 17:07:07.49ID:D8kzVED3
ど素人
2016/09/10(土) 17:26:03.49ID:+bPafAxM
>>301
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1412668764
2016/09/10(土) 17:42:46.18ID:ZZX/BtRf
ダウンロードしたファイルをプロはいちいちチェックしてるのでしょうか?

先輩見ててもサイトから落としたファイルのハッシュチェックなどせず、そのままインストールしています。
2016/09/10(土) 19:13:30.30ID:jtrUVOIC
>>304
ダウンロードだけに限ればチェックが必要な怪しい所からはダウンロードしません
2016/09/10(土) 20:24:05.34ID:QUVRyXDh
>>304
rpmとかyumとかがチェックしてくれる
2016/09/10(土) 20:44:35.89ID:nNi8wB7Z
リポジトリを信用するしかないから、もうyumにお任せですね。
ソースでDLするのは最近ではpostgreSQLぐらいで。それも公式サイトだし。
2016/09/11(日) 02:32:03.65ID:wOd3xxmp
>>305
そういう問題じゃなくね?
2016/09/11(日) 08:20:01.34ID:vN9TAtb9
>>308
> 先輩見ててもサイトから落としたファイルのハッシュチェックなどせず
2016/09/11(日) 08:55:49.82ID:TPMGBr6r
あのねここはプログラミングのスレなの
もういい加減にしてくれない?
2016/09/11(日) 13:16:55.57ID:wOd3xxmp
>>309
ハッシュのチェックをするのは、出自が怪しいかどうかじゃなくて、
途中で壊れてないかを確認するためだろう?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況