問題タブ [windows-socket-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
138 参照

sql-server - Windowsでプロセスによって開かれたソケットfdsを見つける方法

Windows (win 7/win 2008 サーバー) でクライアント プロセスを実行しています。タスクは、サーバーに接続するために開いたソケットの 1 つでキープアライブを有効にすることです。この接続を確立するために、Windows API (MSSQL サーバーへの接続) を使用していますが、そこから作成したソケット fd を取得できませんでした。

1)Windowsプロセスによって開かれたすべてのソケットfdsを取得する方法は何ですか(バイナリはC ++ベースであるため、Python以外の方法)

2) Windows API SQLAllocHandle または SQLDriverConnect によって返されたハンドルからソケット fd を取得する方法はありますか?

ありがとう

0 投票する
1 に答える
1164 参照

c++ - WSASetSocketSecurity() の後でソケット connect() が失敗するのはなぜですか?

私は、C++ でソケットを開き、Linux と Windows の両方で http: と https: の両方の Web ページを読み取る方法を学生に示したいクラスを教えています。Linux版版はOpenSSLで楽々でした。しかし、Microsoft の WSA ソケット ライブラリを使用する Windows では、非 SSL ページしか読み取れませんでした。WSASetSocketSecurity()関数を機能させる方法がわかりません。

次のコード フラグメントの WSASetSocketSecurity 呼び出しをコメント アウトすると、http: (ポート 80) ページを読み取ることができます。https: (ポート 443) ホストにconnect()することはできますが、HTML GET リクエストを送信してからrecv()ページを送信しようとする と、何も返されないか、一部のサーバーから 400 の不正なリクエスト ページが返されて、期待どおりに失敗します。暗号化をネゴシエートしません。

暗号化を保証するために WSASetSocketSecurity 呼び出しのコメントを外すと、http: ページと https: ページの両方で接続呼び出しが常に WSAGetLastError = 10060 (接続タイムアウト) で失敗します。

WSASetSocketSecurity を呼び出して、安全でない接続を許可するように指定すると、http: ページを読み取ることができますが、WSASetSocketSecurity がまったく呼び出されていない場合と同じように、https: ページで失敗します。

基本的に、暗号化をオンにして接続することができず、その理由がわかりません。

ソケット、接続、およびその他の呼び出しを WSAxxx() バージョンに置き換える実験を試みました。Linux で接続後に SSL_connect 呼び出しを行う必要がある方法と同様の違いがあると想像しますが、違いはありません。まだ試していないと思う唯一のことは、WSASetSocketPeerTargetName() を使用してホストを認証することですが、SSL リンクだけが必要な場合は、それを行う必要があるとは思えません。

ここで何が欠けていますか?誰かがこれを機能させましたか?

0 投票する
0 に答える
345 参照

c - Windows 10 のソケット ライブラリの名前は何ですか?

エコー サーバー コードをコンパイルしようとしています。Windows 10 で CodeBlocks IDE を使用しています。

いくつかのエラーが発生しています

コードをコンパイルしているコマンドは

問題は、IDE がsocketコードの実装を持つライブラリをリンクしていないことだと思います。

リンクするライブラリの名前と入手方法を教えてください。システムに Win 10 SDK がインストールされています。