0

Winsock を使用して MFC で記述されたクライアントとサーバーがあります。それらは同じコンピューター (つまり "127.0.0.1") にある場合にのみ機能しますが、別のコンピューターからクライアントに接続しようとすると、タイムアウト エラーであるエラー コード 10060 が表示されます。これが関連しているかどうかはわかりませんが、1 台のコンピューターはドメイン (学校のコンピューター) に接続されており、もう 1 台はワークグループの下にあるため、それらが問題を引き起こしているかどうかはわかりません。ここにいくつかのコードがあります。サーバー オブジェクトは、CSocket から派生したクラスにリンクされています。

クライアント

if(client.Create() != true)
    AfxMessageBox(L"FAILED");

UINT port = 200;    
client.Connect(L"IP ADDRESS",port); //fails here
int msg = client.GetLastError();
CString c_msg;
c_msg.Format(L"%d",msg);
AfxMessageBox(c_msg); //displays error code

サーバ

int i_port = 80;
server.Bind(server.Create(0,SOCK_STREAM,NULL)); // saw somewhere that i should bind the socket

if(server.Listen() == false)// if listen() fails
{
    AfxMessageBox(L"Could not Listen on specified Port \n Please select a different one.");
    server.Close();// close server
}
c_List.AddString(L"Server Listening");// notfiy user server is listening in ListBox

サーバー受付機能

CString userIp; //string
CString u_Status("Connection made from IP Address:"); //string
UINT userPort = 0; //integer

if(server.Accept(client))// if server sucessfully accepts client then
{
    client.GetSockName(userIp,userPort); // get client IP and Port number and assign to variables
    u_Status = u_Status + userIp; // string additon


    ListStatus = u_Status; // assigning local value to global string
    conIp = true; // change boolean to true

}
4

0 に答える 0