- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
我几天前问过类似的问题。那时,我正在尝试使用套接字。目前,我正在使用 TCPClient 为我做脏套接字工作。我使用的是 Windows 7 和 Visual Studios 2013 Professional。
原始和当前项目大纲:
我需要创建一个应用程序(使用 C# 的 WinForms),允许用户通过 wifi 连接到设备(将发送参数/命令的硬件)(wifi 是最终目标,但我现在正在解决对于任何连接),然后将消息发送到所述设备。我知道一些 C# 和一些套接字/IP 的东西,但不知道使用 C# 的套接字/IP。程序的可视化 GUI 方面不是我正在努力解决的问题。我似乎无法启动和运行 TCPClient 并建立任何真正的连接。我不断收到“提供了无效参数”异常。
有关此特定问题的任何提示或有关 C# 网络/TCPClient/等的帮助。欢迎。
我已尝试通过以下每种方式创建一个新的 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 类中的构造函数之一。这些中的每一个都给我以下异常:提供的参数无效
堆栈跟踪:
at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)\r\n at System.Net.Sockets.TcpClient.initialize()\r\n at System.Net.Sockets.TcpClient..ctor(AddressFamily family)\r\n at System.Net.Sockets.TcpClient..ctor()\r\n at ConnectLite.ConnectLite.MakeConnection() in h:\Howard\Projects\ConnectLite\ConnectLite\Form1.cs:line 120
我确实拥有所有必要的导入和使用。
当我尝试在另一台计算机上运行该应用程序时,这个问题变得很奇怪。在单独的计算机上,无论是在没有 Visual Studios 的调试文件中运行应用程序,还是在使用 Visual Studios 2013 的另一台计算机上运行它,应用程序都比异常更进一步,并且永远不会抛出异常。
我只是想使用 TCPClient 来做一些简单的消息发送。然而,TCPClient 阻止我这样做。
当我一直在使用套接字时,它在创建新套接字时抛出相同的异常。
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 . . .
要关闭 TcpClient,必须关闭流。通常的做法是: client.GetStream().Close(); client.Close(); 因此仅使用 client
我正在阅读 the documentation on TcpClient.Close()并注意到这一点: Calling this method will eventually result in t
用于同步消息交换的我的客户端类: public class AsClient { private TcpClient connection; public AsClient(int s
我正在制作一个向许多 TCP 监听器发送数据的程序。如果不再使用其中一个 TCP 发送 channel ,我们是否需要使用 TCPClient.close 将其关闭。如果我们让它打开会怎样? 谢谢!
.NET 允许两种非常相似的方式从网络“读取”(假设 TCP 连接): 1. TcpClient.GetStream().Read() 2. TcpClient.Client.Receive() 通过
我找到了一些关于如何用 C# 编写 TCP/IP 客户端-服务器应用程序的代码服务器 Main 以此开头: TcpListener serverSocket = new TcpListener(888
我正在尝试连接到本地网络内的路由器。到目前为止,我已经使用了 TcpClient。 检查我的代码: public static void RouterConnect() {
服务器 : public class TcpServer { private TcpListener tcpListener; private static ManualResetEv
我想使用 TcpClient 发送 HTTP 请求。考虑以下代码: byte[] buf = new byte[1024]; string header = "GET
我在半关闭 TcpClient 时遇到了严重问题。我想做的是: 在客户端: 发送消息 关闭用于发送的底层套接字 收到回复 关闭用于读取的底层套接字(或者,此时,直接关闭它) 在服务器上: 接收消息 关
我有一个客户端和服务器,都有接收和发送方法,并且都使用相同的数据包类、数据包头大小和反序列化等。 如果我只发送较小的文本消息包,一切正常,但是当我尝试发送图像时,缓冲区溢出并且出现内存不足异常。奇怪的
在我的 C# 应用程序中,我有一个线程,它基本上不断地从 TcpClient 读取数据,直到被告知停止。为此,我使用 WaitHandles,例如: private ManualResetEvent
我有一个客户端-服务器程序。 我正在发送这样的数据: private void Sender(string s,TcpClient sock) { try { byte[] b
这个问题在这里已经有了答案: C# network connection running from shared drive (1 个回答) 关闭 7 年前。 我几天前问过类似的问题。那时,我正在尝
我有一个 TCPClient,它创建一个流,当 DataAvailable 时我从中读取流。 每 20 秒 !DataAvailable 我会使用 ACK 消息对套接字执行 ping 操作,以防止流关
我正在使用 SwifSockets:https://github.com/swiftsocket/SwiftSocket :按照有关如何使用它的说明后,我在堆栈溢出上找到了此代码:Sending Me
我在继承的一些代码中有一个奇怪的行为 - 下面的简化示例演示了如果内置到普通控制台应用程序中的问题。 WhoIs 在第 5 次调用时达到其使用限额 - 并返回一条消息 + 关闭套接字。使用 ReadL
我正在用 C# 开发一个 Tcp 客户端,我正在使用 TcpClient 类。我无法连接到服务器。 调试应用程序我可以看到对 Connect 的调用是成功的,但是在我这样做之后,我用 netstat
我有一个我似乎无法弄清楚的问题,请帮忙。我创建了一个类来处理使用 TcpClient 的某些硬件的接口(interface)。我希望此类在 HW 被销毁之前向 HW 发送最后一个命令。 为了解决这个问
您好,感谢您的帮助。这次想问一下TcpClient。我有一个服务器程序,我正在编写一个客户端程序。此客户端使用 TcpClient。首先是创建一个新客户端 clientSocket=new TcpCl
我是一名优秀的程序员,十分优秀!