问题标签 [tcpclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
11247 浏览

c# - 是否可以在 Socket 和 TcpClient 对象之间进行转换?

这是另一个 C#/.NET 问题,仅基于好奇而不是迫切需要...

如果你有一个Socket实例并且你想将它包装在更高级别的TcpClient类中,这可能吗?你会怎么做?

相反,如果您有 的实例TcpClient,是否有可能获得基础Socket

0 投票
1 回答
380 浏览

c# - 抽象基类的 TcpClient 字段不断被释放

我有一个带有 TcpClient 字段的抽象基类:

它有一种建立连接的方法:

而不是请求数据的方法:

还有一些其他的,例如 requestRawData 等……它们是非常特定的硬件通信协议所必需的,但这绝不是这个问题的一部分。

然后我有从这个类派生的类,它们覆盖了基类方法:

代码正常运行,但每次调用 setupConnection 方法时,TcpClient 实例(tcpClient)似乎都被释放了,因此创建了一个新实例并再次调用了 connect 方法,确实减慢了通信过程。

注意:子类的公共方法调用 requestData 方法,从使用该库的开发人员那里抽象出许多细节。

如SetDevicePower(byte PowerLevel)、QueryDeviceName()等...

像这样的代码:

导致 connect 方法被调用两次......为什么它在调用之间被处理?

0 投票
1 回答
2259 浏览

c# - TcpListener.AcceptTcpClient 会抛出非关键异常吗?

在我的应用程序中,我目前在 AcceptTcpClient(或 EndAcceptTcpClient)引发异常时停止侦听。通常,当我停止侦听器(套接字错误 10004)或断开网络适配器时会引发异常。

但是,是否有任何由客户端引起的异常,并且需要忽略(或记录)异常并继续调用 AcceptTcpClient?

0 投票
3 回答
3203 浏览

c# - C# 使用 FileStream 读取“Zip”文件

我编写了一个程序,该程序将使用 TCPClient 建立与远程计算机的网络连接,我正在使用它将 100k 块中的文件传输到远程 .net 应用程序,然后将它们写入硬盘驱动器。除了 ZIP 文件之外,所有文件传输都运行良好 - 奇怪的是,重新组合的文件始终为 98K ...... ZIP 文件是否存在一些不为人知的秘密,以防止以这种方式处理它们。同样,所有其他文件传输工作正常,图像、xls、txt、chm、exe 等。

使困惑

0 投票
5 回答
15396 浏览

c# - 由于目标机器主动拒绝,无法建立连接

我正在使用 C# 开发一个简单的 hello world TCP/IP 客户端服务器应用程序,但无法让我的客户端连接。谁能提供任何额外的故障排除步骤?我开始没有想法了...

以下是相关的代码部分:

服务器:

客户:

我能够从客户端机器 ping 服务器,但是我无法使用绑定端口远程登录到服务器。我尝试了各种端口(一些在 8000 的低端,一些在 40000 左右)。我在两个系统上都禁用了 Windows 防火墙。这些系统连接到不在互联网上的路由器。我尝试过设置和不设置端口转发以将给定端口上的传入请求转发到服务器机器,但没有任何效果。

我能够捕获的唯一异常是客户端抛出的:

由于目标机器主动拒绝,无法建立连接。

我检查了一个InnerException,但似乎没有 - 这是基本异常。这可能是对的吗?

不知道我还应该看什么 - 任何额外的故障排除步骤都会有所帮助。

谢谢!

0 投票
19 回答
224913 浏览

c# - 在 C# 中,如何检查 TCP 端口是否可用?

在 C# 中使用 TcpClient 或通常连接到套接字我如何首先检查我的机器上的某个端口是否空闲?

更多信息: 这是我使用的代码:

0 投票
6 回答
3862 浏览

c# - 如何在 C# 中使用“使用”而不出现“InvalidOperationException”?

我正在尝试替换以下可以正常工作的代码

但我得到一个InvalidOperationException说法

在未连接的套接字上不允许该操作。

有什么问题,我该如何解决?

更多:我在这段代码之前有 oc.Connect,所以我已连接,当它想第一次使用时工作正常,只有在那之后我才得到那个异常,我玩了一下它,现在我得到:

无法访问已释放的对象。\r\n对象名称: 'System.Net.Sockets.Socket'。

0 投票
1 回答
1406 浏览

c# - 在 C# 中处理此 TCP 连接的首选方法是什么?

我有一个服务器应用程序(单例、简单的 .NET 控制台应用程序),它与 GlobalCache GC-100-12 进行通信以路由 IR 命令。本地网络上的各种 .NET WinForm 客户端连接到我的服务器应用程序并向其发送 ASCII 命令。服务器应用程序将这些 ASCII 命令排队,然后通过 TCP 连接将它们发送到 GC-100-12。

我的问题是,从服务器的角度来看,处理此连接的最佳方法是什么?我可以想到两种方法:

  1. 为每个单独的请求创建并打开一个新的 TcpClient。请求完成后关闭 TcpClient。

  2. 在服务器启动时创建并打开一个 TcpClient 并使用 keep-alive(如有必要)在服务器对象的生命周期内保持连接打开。

我问这个问题是因为我想知道为每个请求创建一个新的 TcpClient 的开销。这是一项昂贵的手术吗?这是一个不好的做法吗?

目前我正在做#1,并将每次传输的结果打印到控制台。有时一些连接超时并且命令没有被路由,我想知道这是因为每次创建新的 TcpConnection 的开销,还是因为其他原因。

我可以看到#2 更复杂,因为如果连接确实断开,则必须重新创建它,这将需要更多代码来处理这种情况。

我正在寻找有关此的任何一般性建议。我没有很多使用 TcpClient 类的经验。

0 投票
1 回答
4018 浏览

ssl - TCP 服务器上的 SslStream 无法使用 RemoteCertificateNotAvailable 验证客户端证书

这个问题都是关于解决SslPolicyError.RemoteCertificateNotAvailable错误的。

我为另一端开发了一个带有 SSLStream 的 TCP 服务器和一个 TCP 客户端。

我通过以下方式验证服务器:

我通过以下方式验证客户端:

我正在从Trusted Publishers - Local Machine.

两者都在同一台机器上运行。

我尝试从 .cer 和 .pfx 文件而不是受信任的发布者存储中加载客户端证书。但是服务器的客户端(远程)证书验证器回调因发现SslPolicyErrorsRemoteCertificateNotAvailable错误而失败。

0 投票
2 回答
2064 浏览

delphi - 通过 http 代理连接 TTcpClient

我如何通过delphi中的http代理服务器连接到服务器?SOCKS5 代理呢?

谷歌没有任何建议!