问题标签 [tcpserver]

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 回答
1181 浏览

c# - 将数据从 C# TCP 服务器发送到侦听线程之外的已连接客户端

我正在 Unity 中编写一个简单的 Tcp 服务器,并让我的 Flash 应用程序连接到它。我在网上找到了一个关于线程 Tcp 服务器的很棒的教程,我的 flash 应用程序很好地连接到了它。但是,我无法将侦听线程之外的数据发送到连接的客户端。我试图创建线程内部获得的 Tcpclient 的全局引用。但是,该引用 (sclient) 仅在侦听线程内部有效,将 Null 打印到线程外部的控制台。我必须做一些事情来保留 TCP 客户端引用以供以后使用或从块线程外部访问它。请帮忙!

0 投票
2 回答
603 浏览

html - tcp socket服务器测试html5websocket

哪个是测试 html5websocket 的最佳 tcp 套接字服务器?我开发了一个基于 html5socket 的客户端,它将与 tcp 交互。所以我首先想要一个测试服务器。我擅长 PHP,但不擅长套接字编程。所以我使用了从谷歌代码下载的PHPwebsocket。我尝试使用它自己的客户端和服务器进行测试,但它突然断开连接并且无法按预期工作,那么是否有任何其他套接字服务器来测试 HTML5 websocket 客户端?哪个更好,我可以使用基于 python 或基于 java 的 tcp 服务器,或者如果在 PHP 中,那会更方便。请告诉我测试 HTML5 websocket 还需要什么。我是套接字的新手。所以我的概念不是很清楚。

感谢您的任何建议。

0 投票
1 回答
3873 浏览

stream - Indy 10 读写流的问题

我正在尝试使用在通过网络发送之前转换为流的集合在 IdTCPServer 和 IdTCPClient 之间交换数据。不幸的是,无论我如何尝试,我似乎都无法在客户端和服务器之间传递流。代码始终挂在IdTCPClient1.IOHandler.ReadStream(myStream, -1, True)行上。

我的代码的相关部分如下所示:

客户端

服务器端

非常感谢您在解决此问题方面的帮助。

谢谢,

丹尼尔

0 投票
1 回答
109 浏览

network-programming - tcp-messaging 的最佳约定

我正在使用此消息对流:%total_msg_length%|%msg_body% 通过 tcp-sockets (python/pyqt) 接收字符串数据。这是好的对流,还是我应该尝试别的?

0 投票
2 回答
988 浏览

c - 读/写在我的 TCP 代码中不起作用

我有一个基本的 TCP 客户端/服务器程序。

我在客户端和服务器中都有一个读取和写入的方法。我第一次运行它时它运行良好,但是当它再次运行时(它处于循环中)它不会读取任何内容。

在服务器

a2、a3、a4、a5 和 a6 是字符串。第一次运行时,它会正确打印所有内容。第二次,它什么也没打印出来,只是一堆空白行。当我测试找出缓冲区是什么时,我得到了它的“”。你知道问题是什么或我该如何解决?

0 投票
2 回答
2685 浏览

c - 多线程服务器设计

我正在尝试实现一个 TCP 服务器,它是一个更大项目的一部分。基本上,服务器应该能够与任意数量的客户端(至少 32 个)保持 TCP 连接,并为任何请求服务的客户端提供服务。在我们的场景中,假设一旦客户端连接到服务器,它将永远不会关闭连接,除非发生某种故障(例如运行客户端的机器发生故障),并且它会重复请求服务服务器。所有其他客户端也是如此,即每个客户端都将保持与服务器的连接并执行事务。

现在我使用select()berkely 套接字 API 的系统调用,当我们有少量客户端(比如 10 个)时它工作正常。但是服务器需要扩展到尽可能高的水平,因为我们在 16 核机器上实现它。为此,我查看了各种多线程设计技术,例如每个客户端一个线程等,我认为最好的一种是线程池设计。现在当我即将实现时,我遇到了一些问题:如果我指定主线程接受任意数量的传入连接并将每个连接文件描述符保存在数据结构中,并且我有一个线程池,我将如何获得用于轮询特定客户端是否正在请求服务的线程。对于客户端联系服务器并在获得服务后关闭连接的场景,该设计非常简单,这样我们就可以从池中选择一个线程,为客户端提供服务,然后将其推回池中以供将来处理连接。但是,当我们必须为一组保持连接并间歇性地请求服务的客户端提供服务时,最好的方法是什么。所有帮助将不胜感激,因为我真的陷入了困境。谢谢。

0 投票
1 回答
2156 浏览

c - 如何正确使用 recv() 系统调用

我正在使用 linux 下的 Berkely SOCKET API 编写 TCP 服务器。现在客户端有一组规范,客户端发送的每个消息都基于这些规范,即从客户端发送的消息对应于规范指定的许多结构中的一个。现在的情况是服务器不知道客户端将在什么时间发送哪条消息。一旦我们得到消息,我们就可以弄清楚它是什么,但在此之前就不行了。客户端发送的消息长度可变,因此我们无法提前知道我们将收到什么消息。为了解决这个问题,我使用了以下方法:

那就是我使用大小为 4096 的默认缓冲区(来自客户端的任何消息都不能大于此大小)。在该缓冲区中接收,然后我检查消息类型并采取相应的操作,如下所示:

这很好用,但我只是想确认这是一种合适的方法,还是有比这更好的方法。非常感谢所有帮助。

谢谢。

0 投票
0 回答
637 浏览

c# - 如何创建一个 tcp 服务器,在 web 服务收到订单时向客户端发送通知?

我有一个 Web 服务,可以处理和存储来自网页的传入订单。

作为该 Web 服务的静态变量,根据这个问题,我有一个服务器,它应该在收到这样的订单时向连接的客户端发送一条非常小的消息。

下面是我的服务器的代码。我只希望一次连接一个客户端,这可能解释了代码中的一些奇怪之处,但如果有人知道如何更好地做到这一点,我真的很想听听建议。

TCP 服务器:

网络服务:

0 投票
0 回答
420 浏览

.net - 为什么服务器端的 RemoteEndPoint 不代表客户端 IP?

我在计算机(1个服务器和2个客户端)中尝试了带有服务器客户端的异步套接字:

在服务器端,当服务器从第一个客户端接收到第一个连接请求时,我将第一个客户端套接字存储在一个 ArrayList 中。使用以下代码,我得到一个客户端 ip 是 127.0.0.1

当服务器从第二个客户端收到第二个连接请求时,我得到一个客户端 ip 是 127.0.0.1 但不是 127.0.0.2

我将上面的代码从RemoteEndPoint更改为LocalEndPoint输出是正确的。为什么服务器端的RemoteEndPoint不代表客户端 IP

谢谢。

0 投票
1 回答
4405 浏览

delphi - Indy TCPServer 在发送包过于频繁时不会收到来自 TCPClient 的所有包

Indy TCP 连接有问题。我使用带有 Indy 10 的 Turbo Delphi 2006。我想将多个 TCP 包从 idTCPClient 发送到 idTCPServer。

当我只想发送一个包,或者我在函数的两次调用之间插入一个 sleep(100) 命令时,它工作得很好。但是如果我调用这个函数过于频繁,它不会每次都调用服务器的onExecute。

我的发送代码:

我多次调用此函数(每秒 5-10 次),并希望在我的服务器应用程序中处理所有这些包:

提前感谢您的回答!