1

この関数は文字列としてDns.GetHostEntryは処理されませんが、パラメータとして渡すと非常にうまく機能します。ipaddresses127.0.0.1google.de

私は何か間違ったことをしていますか?

public static Socket connSock(string Server, int Port)
{
        Socket s = null;            
        IPHostEntry ipHE = Dns.GetHostEntry(Server);
        //IPAddress[] ipA = null;
        IPEndPoint ipE = null;

        foreach (IPAddress address in ipHE.AddressList)
        {

            ipE = new IPEndPoint(address, Port);
            Socket tempSocket = new Socket(ipE.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            tempSocket.Connect(ipE);

            if (tempSocket.Connected)
            {
                s = tempSocket;
                break;
            }
            else
            {
                continue;
            }
        }

        return s;
    }
4

1 に答える 1

1

これは、システムがホストエントリを取得できないことを意味している可能性があります。これは(たとえば)特定のIPに定義されたPTRレコードがない場合に発生します。

于 2012-11-25T15:18:54.287 に答える