草庐IT

tcp - 具有持久套接字的 Mule TCP 轮询监听器?

我正在尝试配置Mule以连接到外部TCP服务器,然后通过已建立的连接接收流式消息(XML文档)。我已经创建了一个从InputStream中提取XML的自定义协议(protocol),但是,TCP轮询连接器似乎正在关闭套接字,然后在我的TCP服务器不断通知我新连接时重新打开套接字。下面是我的MuleFlow,任何人都可以建议如何让Mule建立TCP连接并保持连接打开,从打开的连接中轮询一个接一个的消息?(.*)/);if(matcher.getCount()>0){rkey+="track.number."+matcher[0][1];}else{matcher=(p=~/([A-Za-

c# - 在 C# 中从服务器轮询连接的客户端

我正在尝试轮询来自连接到我的服务器的客户端的连接。当您使用poll时,您需要给它一个套接字连接,但在服务器端,套接字绑定(bind)到它自己的IP地址和特定端口。让另一个套接字连接到同一个端口但使用客户端的IP地址将不起作用,因为您不能在同一个套接字上有多个连接。我只是想知道什么是不断检查客户端是否仍连接到服务器以及何时断开连接的好方法?我在考虑某种超时检查之类的。我只是想知道是否有任何通用或正确的方法来实现这一目标。我试过Socket.Poll但它似乎没有达到我想要的效果。重申一下我的问题,您如何使用C#中的TCP套接字检查客户端是否连接到服务器端? 最佳

C# 轮询 TCP 服务器

大家好-我想知道是否有人可以帮助我-我需要经常轮询TCP服务器以请求接收一些实时数据。我知道我需要创建一个线程才能与服务器对话,但我不确定如何频繁进行此轮询。任何帮助将不胜感激... 最佳答案 我不会使用后台线程。而是看看System.Threading中的计时器。这正是它的用途。非常易于使用。 关于C#轮询TCP服务器,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/266664

c - 在 C 中轮询 TCP 连接

我正在做一项学校任务,我必须创建一个服务器来获取TCP连接。这些连接然后传递数据。我使用poll()来查看是否有新的连接请求,或者是否有来自现有连接的传入数据。它与环回地址(127.0.0.1)一起使用。当我有1个连接时它工作正常,但是当我打开第二个连接时,它会停止轮询并等待来自新连接的数据。奇怪的是,如果我打开第三个连接,它也会提供第三个连接的数据,但仍然没有轮询,只是等待。我读了很多关于它的资料,我坚持了一段时间。我在connmgr.c中编写了服务器代码(有很多printf用于发现我的错误)。我将在下面解释:#include#include#include#include#incl

tcp - 聊天服务器 - 每个轮询的持久 TCP 或新连接

对于需要维护活跃用户列表的可扩展服务器,最佳实践是什么?我应该为服务器发送更新消息的每个客户端打开一个持久的TCP连接吗?这可能会导致许多打开的连接,并且很可能在很多秒内没有流量。这是TCP中的问题吗?或者让客户端定期轮询更新(每个都有一个新的tcp连接)会更好吗?聊天服务器或大型在线游戏如何处理这种情况? 最佳答案 就我个人而言,我会为每个客户端建立一个持久的TCP连接,以避免a)创建和销毁连接的额外工作以及涉及所有TCP数据包的额外延迟,以及b)避免在TIME_WAIT中创建大量套接字在客户端或服务器上。根本没有充分的理由来创建

ios - 每小时轮询一次 TCP 服务器 ios

在我当前的应用程序中,我需要每小时通过TCP连接轮询一次服务器。我知道最好的选择之一是从服务器端使用推送通知,但我不能那样做。所以目前我正在使用一个定时器,它每9分钟触发一次,以保持应用程序在后台运行。这工作正常..在我向服务器调用Poll的那个小时。Tcp连接已打开,轮询数据已生成,但服务器没有响应。这是因为在后台应用程序无法运行需要几秒钟时间的代码块吗?任何帮助将不胜感激,我也会在下面发布一些代码,if([[UIDevicecurrentDevice]respondsToSelector:@selector(isMultitaskingSupported)]){//Checkifo

c - 如果我使用 select() 轮询方法,我应该将套接字设置为非阻塞吗?

我正在使用select()轮询函数来确定何时有数据要从套接字读取。我这样做是为了不必依赖像accept()和recv()这样的阻塞函数。由于select()阻塞直到文件句柄有数据,是否有必要使用fcntl()将套接字设置为非阻塞?在我看来没有必要,因为select()函数告诉我数据已准备好从套接字文件句柄中读取。我见过程序员使用select()并将套接字设置为非阻塞的代码,我也见过程序员使用select并保留阻塞设置的代码。哪个是对的?使用select()并将套接字设置为非阻塞有优势吗? 最佳答案 是的,您通常应该将套接字设置为非阻

c - 如何使用轮询接受多个客户端? (TCP 服务器) (C)

这个投票业务看起来像是疯子写的,我不确定如何使用它来允许多个客户端连接到服务器,然后将他们的输入发送给所有其他客户端。所以如果我想让三个客户端运行,我将需要类似的东西:ufds[0].fd=sd;ufds[0].events=POLLIN;ufds[1].fd=sd2;ufds[1].events=POLLOUT;ufds[2].fd=sd2;ufds[2].events=POLLOUT;ufds[3].fd=sd2;ufds[3].events=POLLOUT;ufds[4].fd=sd2;ufds[4].events=POLLOUT;然后究竟要做什么才能读入和写出消息?

c# - 轮询数千个 TCP 套接字

我需要使用专有协议(protocol)通过TCP连接到数千个客户端,以循环获取数据。我需要用C#编写.NET服务器应用程序。第一次尝试是为每个tcp套接字创建一个自己的线程,这可行但需要大量cpu使用。我发现改用.NET线程池会更好。据我了解(http://msdn.microsoft.com/en-us/library/ms973903.aspx),我可以使用计时器让每个套接字在给定时间段(如1秒)内循环获取数据。这对我不起作用,因为一旦连接打开,套接字就会超时,因为在打开的套接字再次打开之前,必须打开更多的套接字。另一个尝试是使用异步回调。这对我有用,但我不知道如何让套接字周期性地

c++ - 有没有更好的方法在 C++ 中使用异步 TCP 套接字而不是轮询或选择?

我最近开始编写一些使用套接字的C++代码,我希望它是异步的。我读过很多关于如何使用poll和select使我的套接字异步(使用poll或select等待发送或接收缓冲区)的文章,但在我的服务器端我有一个structpollfd数组,每次监听套接字接受一个连接,它将它添加到structpollfd的数组中,以便它可以监视该套接字的recv(POLLIN)。我的问题是,如果我有5000个套接字连接到我的服务器上的监听套接字,那么structpollfd数组的大小将是5000,因为它将监视所有连接的套接字,但这是我知道的唯一方法检查套接字的recv是否准备就绪,方法是循环遍历structpo