TcpClientでTCP接続がうまくできない
クライアントPC1台+サーバーPC2台(A、B)という構成で、
クライアントPCからサーバAにtcp接続を行い、コネクション確立されたらAに、確立されなければBにアクセスするというソフトを作成しています。
TCPポート50002を指定して接続確認を行いたいのですが、うまく行えません。
ファイアウォールの送受信設定で50002を許可にはしています。
下記が実装中のTCPアクセスクラスです。
public class TcpClientAcs
{
string strPartnerIpAddress;
int nPort;
int nTcpConnectionTimeout;
int nTcpConnectionCount;
public TcpClientAcs()
{
nPort = 50002;
nTcpConnectionTimeout = 2000;
nTcpConnectionCount = 2;
}
public bool CLTMain(string ipaddress)
{
strPartnerIpAddress = ipaddress;
System.Net.Sockets.TcpClient tcp;
int ConnectionRetryCnt = 0;
tcp = null;
// TCP connection
while (true)
{
if (ConnectionRetryCnt < nTcpConnectionCount)
{
try
{
tcp = new TcpClient();
var connection = tcp.BeginConnect(strPartnerIpAddress, nPort, null, null);
var success = connection.AsyncWaitHandle.WaitOne(nTcpConnectionTimeout);
//add retry count
if (!success)
{
ConnectionRetryCnt++;
continue;
}
else
{
break;
}
}
catch (Exception)
{
ConnectionRetryCnt++;
}
}
else
{
return false;
}
return true;
}
return true;
}
}
宜しくお願いします。