サーバ/クライアント通信を作成しようとしましたが、接続関数がerrno 88で失敗しました。このerrnoは試していることを意味しています非ソケットオブジェクトに対してソケット操作を行う)。ソケットに接続できませんでした - errno 88(cpp)
int main (int argc, char *argv[])
{
// Validity check
if (argc != VALID_ARG_NUM) {
std::cout << INVALID_ARG;
return 0; // todo - return 0 is correct??
}
int port;
struct sockaddr_in server_address;
// server_address initialization.
server_address.sin_family = AF_INET;
server_address.sin_port = htons((uint32_t)atof(argv[3]));
server_address.sin_addr.s_addr = inet_addr(argv[2]);
memset(&(server_address.sin_zero), '\0', sizeof(server_address));
// Create the client socket.
if (sockfd = socket(AF_INET, SOCK_STREAM, 0) < 0) {
std::cout << "ERROR: socket " << errno << "." << std::endl;
exit(1);
}
// Connect to server.
if (connect(sockfd, (struct sockaddr *)&server_address, sizeof(server_address)) < 0) {
std::cout << "ERROR: connect " << errno << "." << std::endl;
std::cout << CON_FAIL;
close(sockfd);
exit(1);
}
.......
ありがとうございます。
Boostが利用可能な場合、またはダウンロードできる場合は、Boost Asioを使用してソケットプログラミングを行うことを強くお勧めします。 – Peri461
'errno'のエラーコードは実際にはプラットフォームに依存します。ご使用のプラットフォーム(オペレーティングシステム)を教えてください。たとえば、 'strerror'はエラーコードから印字可能な文字列を取得します。 –
申し訳ありませんが、OSはLinuxです。 –