问题标签 [tcplistener]

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 投票
5 回答
22454 浏览

.net - 如何在 .NET 中的线程上传播 tcplistener 传入连接?

使用 Net.Sockets.TcpListener 时,在单独的线程中处理传入连接 (.AcceptSocket) 的最佳方法是什么?

这个想法是在接受新的传入连接时启动一个新线程,而 tcplistener 然后保持可用于进一步的传入连接(并且为每个新传入连接创建一个新线程)。与发起连接的客户端的所有通信和终止都将在线程中处理。

VB.NET 代码的示例 C# 表示赞赏。

0 投票
1 回答
2259 浏览

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

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

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

0 投票
9 回答
90050 浏览

c# - 停止 TcpListener 的正确方法

我目前正在使用 TcpListener 来处理传入连接,每个连接都有一个线程来处理通信,然后关闭该单个连接。代码如下所示:

listen变量是一个布尔值,它是类上的一个字段。现在,当程序关闭时,我希望它停止监听客户端。设置监听false将阻止它接受更多连接,但由于AcceptTcpClient是阻塞调用,它至少会占用下一个客户端然后退出。有什么办法可以迫使它在那时就在那里简单地爆发并停止?在另一个阻塞调用运行时调用 listener.Stop() 有什么影响?

0 投票
1 回答
16221 浏览

c# - TcpListener:监听每个地址,包括GPRS IP地址

我们有一个简单的遗留软件,我们需要通过端口 15001 使用 TCP/IP 进行通信。我们需要在端口 15001 上监听遗留软件以建立连接,然后读取它发送给我们的任何内容。

我们已经在互联网上测试了这个解决方案,它工作得很好。然而,如果我们在 GPRS TCP/IP 网络上测试相同的解决方案,它不会。

基本都查过了,可以ping通GPRS网络中的其他设备,15001端口没有被防火墙封锁。

所以也许我的 TcpListener 有问题?

它是这样初始化的:

我假设它侦听系统上每个可用的启用 IPv4 的接口,因为我使用了 IPAddress.Any ?

有人知道这两个网络之间可能有什么区别吗?(即使不应该有任何区别)如果有什么我需要更改为我的 TcpListener?

0 投票
5 回答
15396 浏览

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

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

以下是相关的代码部分:

服务器:

客户:

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

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

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

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

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

谢谢!

0 投票
2 回答
7878 浏览

.net - 到机器的最大 TCP 连接数

我正在.NET 中创建一个 Windows 服务,N 个客户端可以连接到该服务。该服务启动一个 TCP 侦听器并接受客户端连接。我面临的问题是我只能打开 10 个与该服务的连接。listener::AcceptTcpClient() 方法只接受 10 个连接,并为第 11 个连接抛出异常。客户端应用程序使用 System.Net.Sockets.TcpClient 类,服务使用 System.Net.Sockets.TcpListener 类。

这是我尝试在 for 循环中与该服务建立多个连接时遇到的异常(在建立第 10 个连接之后):

“无法从传输连接读取数据:现有连接被远程主机强制关闭”

0 投票
2 回答
518 浏览

c# - 程序挂起,等待我永远无法提供的输入

我正在使用 Visual Studio 对这个小型 TcpServer 进行编程。

这真的很具体。服务器侦听端口 1234,位于 IP 127.0.0.1 我们的老师给了我们一个程序,当您单击“连接”时,它会尝试连接到该 IP 上的该端口。它适用于其他所有人,所以它一定是我的编码错误。

当我点击连接时,程序通过流发送单词“GET”,我必须用一个已经连接的 IP 地址列表和一个只包含 .

当我断开连接时,程序会发送“REM”这个词,我只需从我的列表中删除 if(这是一个通用列表)

我有一个 TCPServer 类(我们必须自己制作),它的主要代码如下:

TcpHelper 看起来像这样(在 usings 中查找注释文本“here's the problem”):

0 投票
3 回答
6707 浏览

c# - Windows 侦听器服务

如何在 c# 中编写一个侦听 tcp 连接并处理这些连接的 Windows 服务?问题是我想要一个比在主线程中“阻塞”更好的方法,例如

我可以在另一个线程上启动侦听器,但主线程需要阻止以防止应用程序退出(以及服务停止)。谢谢。

0 投票
2 回答
32247 浏览

sockets - How to let kernel choose a port number in the range (1024,5000) in TCP socket programming

When I run the following code:

According to sockets, I must get a port number between 1024 and 5000, but I'm getting port numbers around 30,000.
What should I do?

0 投票
2 回答
7167 浏览

.net - 如何将 TCPListener 绑定到外部 IP 地址?

我有一个客户端/服务器风格的应用程序,它使用 WCF 进行通信,一切都很好。该应用程序的一项功能是将文件从客户端机器获取到服务器(中央控制)。

中央控制请求客户端上指定文件夹中的文件列表,并使用套接字打开一个端口,供客户端连接和流式传输每个文件。它为每个文件使用不同的端口号。

这在本地测试时效果很好,但是当部署到我们的客户环境时,我开始遇到以下异常。

端点中的IP地址是10 。。。* 地址。我用谷歌搜索了一个答案,普遍的共识是 tcpListener 不能与外部 IP 地址绑定。没想到10 .. .* 地址是外部的。

抛出异常的代码如下:

有没有办法我可以使用 TcpListener 来完成这项工作?如果没有,还有哪些替代方案以及实施这些替代方案的难易程度。

请记住,我们无法直接访问防火墙配置,并且更改可能需要数周才能实施。