Windows 7x64とVS2012U1を実行し、.Net 4を使用している2つのシステムで、UdpClientまたはTcpClientを呼び出すと、「無効な引数が指定されました」というエラーが表示されます。
いくつかのポートを試し、ポートがまだバインドされていないことを確認しましたが、毎回同じエラーが発生します。
また、昇格された特権でコードを実行してみましたが、役に立ちませんでした。
テストコード:
try
{
using (UdpClient client = new UdpClient(new IPEndPoint(IPAddress.Any, 123)))
{
Console.WriteLine("Port is open");
}
}
catch (SocketException error)
{
Console.WriteLine("Error:\n{0}", error.Message);
}
エラー出力:
System.Net.Sockets.SocketException was unhandled
HResult=-2147467259
Message=An invalid argument was supplied
Source=System
ErrorCode=10022
NativeErrorCode=10022
StackTrace:
at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
at System.Net.Sockets.UdpClient..ctor(IPEndPoint localEP)
at GetNTPTime.Program.Main(String[] args) in z:\My Documents\Dropbox\Dev\C#\_Example\GetNTPTime\GetNTPTime\Program.cs:line 15
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
注意として、単にUdpClient client = new UdpClient();を呼び出すと、同じエラーが発生します。