0

idevs.h、netinet/in_systm.h、netinet/ip.h、netinet/tcp.h openssl/ssl.h sys/socket.h

これらのヘッダー ファイルは Linux で動作しますが、Visual Studio 2008 では、ヘッダー ファイルを開けないというコンパイル エラーが表示されます。これらは、ソケット プログラム関連のヘッダーです。(ウェブ検索から適切な結果を得ることができません)

問題:

これらのヘッダー用にインクルードしている dll を教えてください。または他の同等のヘッダーが利用可能ですか?

前もって感謝します。

4

2 に答える 2

1

Windows 環境では、などの Windows 固有のヘッダーを含める必要がありますwinsock.h( http://msdn.microsoft.com/en-us/library/windows/desktop/ms738545(v=vs.85).aspx )。#ifdef異なるプラットフォームのビルドを行う場合、ステートメントを使用してヘッダーを切り替える必要があります。

ソケットの概念の Windows 実装が Unix のものと 100% 同一であると約束した人は誰もいません。これらの実装には多くの共通点がありますが、相違点もあります。

于 2013-07-08T07:13:06.447 に答える
0

ソケットは C++ 標準の一部ではなく、Linux と Windows ではさまざまな方法で実装されています。つまり、ネイティブ ソケット ライブラリは両方の OS で異なり、Windows には Linux 以外のソケット API 用のヘッダーがあります。したがって、他のヘッダーを含める必要があるだけでなく、他の関数を使用する必要がある場合もあります。

達成したいことによっては、OS 固有の部分をラップし、移植可能なインターフェイスを提供するライブラリを使用することをお勧めします。多かれ少なかれポータブルなネットワーク ライブラリがいくつかありますが、最もよく知られているのは Boost.Asio かもしれません。

于 2013-07-08T07:21:21.513 に答える