0

私のネットワークプログラミングプロジェクト(ビジュアルC ++)では、connect(...)apiで1つの問題に直面しています。connect()のコードセグメントは以下のとおりです。

if (connect(sockfd[0], &sock.addr, sizeof(sock.inaddr)) == SOCKET_ERROR){
    wprintf(L"connect function failed with error: %ld\n", WSAGetLastError());
    closesocket(sockfd[0]);
    WSACleanup();
}

上記のコードの場合、次のコンパイルエラーが発生します。これは、connectが3つの引数を取る必要があるため意味がありません。

error C2660: 'SampleClass::connect' : function does not take 3 arguments

誰かが私がここで欠けているものを理解するのを手伝ってくれますか?

4

2 に答える 2

3

クラスメンバーの接続を呼び出そうとしています。接続の前に::を付けて、正しい関数が見つかるようにします。

if (::connect(sockfd[0], &sock.addr, sizeof(sock.inaddr)) == SOCKET_ERROR){ 
于 2012-08-09T05:48:24.893 に答える
0

クラスには独自の メソッドがあるようです。代わりにconnect呼び出してみてください。これにより、「標準」のメソッドが得られるはずです。::connect

于 2012-08-09T05:49:33.550 に答える