Boost.Asioで2つのエラーに苦しんでいます。
1つ目は、ソケットでデータを受信しようとしたときに発生します。
char reply[1024];
boost::system::error_code error;
size_t reply_length = s.receive(boost::asio::buffer(reply, 1024), 0, error);
if (error) cout << error.message() << endl; //outputs "End of file"
2つ目は、(有効な!)ネイティブソケットからip :: tcp::socketを作成しようとしたときに発生します。
boost::asio::io_service ioserv;
boost::asio::ip::tcp::socket s(ioserv);
boost::system::error_code error;
s.assign(boost::asio::ip::tcp::v4(), nativeSocket, error);
if (error) cout << error.message() << endl; //outputs "The parameter is incorrect"
これらすべての問題があり、ドキュメントを参照する必要がないため、BSDソケットに戻りたくなりますが、そこでは自分自身の問題が発生しています...誰かが助けてくれるなら、本当に感謝しています。
編集:番号2に関して、nativeSocketは次のように宣言されます:
SOCKET nativeSocket = INVALID_SOCKET;
nativeSocket = accept(svr_sock, (struct sockaddr*)&sin, &size);
その後、ソケットに対して他のいくつかの処理が行われます。つまり、ioctlsocketを使用して非ブロッキングとして設定し、SO_LINGERおよびSO_OOBINLINEにsetsockoptを使用します。