TCPClientexception的新实例

几天前我问过类似的问题。 那时,我试图使用套接字。 目前,我正在使用TCPClient为我做脏插槽工作。 我使用的是Windows 7和Visual Studios 2013 Professional。

原始和当前项目大纲:

我需要创建一个应用程序(使用C#的WinForms),允许用户通过wifi连接到一个设备(一块将被发送参数/命令的硬件)(wifi是最终目标,但我现在正在解决任何连接)然后向所述设备发送消息。 我知道一些C#和一些套接字/ IP的东西,但不知道使用C#的套接字/ IP。 程序的视觉,GUI方面不是我正在努力的方面。 我似乎无法启动并运行TCPClient并建立任何真正的连接。 我一直得到“提供无效参数”的例外情况。

有关此特定问题的任何提示或有关C#networking / TCPClient / etc的帮助。 受欢迎的。

我试图通过以下每种方式创建一个新的TcpClient,但没有成功:

TcpClient tcpClient = new TcpClient(); TcpClient tcpClient = new TcpClient(family); // family is a created AddressFamily TcpClient tcpClient = new TcpClient(clientIPAddress, clientPortNumber); TcpClient tcpClient = new TcpClient(remoteEP); // remoteEP is a remote end point created by me TcpClient tcpClient = new TcpClient(localEP); // localEP is a local end point 

其中每个都是TCPClient类中的构造函数之一。 其中每个都给出了以下exception: 提供了无效参数

堆栈跟踪:

在System.Net.Sockets.SocketCl上的System.Net.Sockets.Socket..ctor(AddressFamily addressFamily,SocketType socketType,ProtocolType protocolType)\ r \ n,位于System.Net.Sockets.TcpClient.initialize()\ r \ n。 .ctor(AddressFamily系列)\ r \ n位于System.Net.Sockets.TcpClient..ctor()\ r \ n,位于h:\ Howard \ Projects \ ConnectLite \ ConnectLite \ Form1.cs中的ConnectLite.ConnectLite.MakeConnection() :第120行

我确实拥有所有必要的import和使用。

当我尝试在另一台计算机上运行该应用程序时,此问题变得奇怪。 在不同的计算机上,无论是从调试文件运行没有Visual Studios的应用程序,还是使用Visual Studios 2013在另一台计算机上运行该应用程序,该应用程序都会使我超出exception范围,并且永远不会抛出exception。

我只是尝试使用TCPClient来做一些简单的消息发送。 但是,TCPClient阻止我这样做。

当我使用套接字时,它在创建新套接字时抛出相同的exception。

 Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 

你们有没有对此事有任何见解?

为简化起见,我已将相关的代码片段放入控制台应用程序中,以便于阅读。

简单的代码块有问题:

 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; namespace ConsoleTestConnectLite { class Program { static void Main(string[] args) { try { TcpClient tcpClient = new TcpClient(); } catch (SocketException e) { Console.WriteLine(e.Message); Console.WriteLine("Error: " + e.StackTrace); Console.WriteLine(e.Message + ". Error Code: " + e.ErrorCode.ToString()); } } } } 

控制台输出:

 An invalid argument was supplied Error: at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, Socket Type socketType, ProtocolType protocolType) at System.Net.Sockets.TcpClient.initialize() at System.Net.Sockets.TcpClient..ctor(AddressFamily family) at System.Net.Sockets.TcpClient..ctor() at ConsoleTestConnectLite.Program.Main(String[] args) in h:\Howard\Projects\ConsoleTestConnectLite\ConsoleTestConnectLite\Program.cs:line 17 An invalid argument was supplied. Error Code: 10022 Press any key to continue . . . 

如果您的代码放在网络驱动器上,您将收到该错误。 将代码移动到本地计算机将解决问题。