草庐IT

c# - 线程池多客户端 TCP(消息处理)

我刚刚了解到您可以将线程池​​用于多客户端TCP连接,我今天有一个C#应用程序,我想将其实现。我已经阅读了一些,例如这个问题的第一个答案(Bestwaytoacceptmultipletcpclients?),但我真的不知道如何进行最后的调整以满足我的“需求”。我有一个针对每个连接的消息处理函数(每个连接有2个线程,一个用于接收/发送消息(大部分时间连接打开时间很长),另一个用于根据消息执行任务(还创建要发回的答案).我现在想使用下面链接中的接收方法,但是我如何在我的示例中使用线程池来执行此操作?有什么不明白的,尽管提问!/尼克 最佳答案

Node.js TCP 套接字在轮询前等待几秒钟? (net.createServer)

我在Node.js中有一个非常简单的TCP套接字。它连接到以XML格式发回数据的设备。有一个C#程序可以执行相同的操作,但我必须在Node.js中构建它。因此,当设备发送消息时,我会在大约5秒后收到响应!C#程序在1或2秒后获取它的位置。看起来“tcp套接字”具有特定的轮询频率或某种“等待功能”。这可能吗?每次显示传入消息时。它还显示“sock.on('close')”的退出消息“服务器”似乎在5秒后自动关闭。请参阅底行“console.log('[LISTENER]连接已暂停。');”之后,收到的消息会正确显示。我的代码有什么问题?//SetNode.jsdependenciesva

C# TcpClient发送数据后关闭XNA游戏窗口

我想在XNA4中编写多人游戏。为了发送数据,我使用像这样连接的TcpClient类:try{client.Connect(serverEndPoint);}catch(Exceptionex){Console.WriteLine("notconnected");return;}if(!client.Connected)return;NetworkStreamstream=client.GetStream();stream.BeginRead(buf,0,1024,newAsyncCallback(PrijmiData),null);当我想用他的方法发送数据时:privatevoidSe

c# - 将数据从服务器发送到特定客户端

我的多客户端/服务器应用程序有一个小问题。我需要从服务器向单个客户端发送特定数据,但我不知道该怎么做。我通过添加带有客户端规范的header暂时解决了这个问题。但这不是最好的解决方案,因为服务器每次都会将数据发送给所有连接的客户端。我该如何解决这个问题? 最佳答案 我遇到了类似的问题。我向包含guid的Web服务添加了一个字段。显然,所有客户端都会定期启动服务以确定他们需要新数据。如果客户端需要发送额外的数据,当它向服务器发出常规请求时,服务器会读取它的客户端ID并创建适当的guid,它会在常规数据馈送中返回该guid。当客户端读取

C++ TCP 服务器-客户端小问题

我有一个TCP服务器和客户端。服务器代码部分:/*intMain()*/while(1){client_socket=accept(my_socket,(sockaddr*)&client_addr,&client_addrlen);nclients++;HOSTENT*my_host;my_host=gethostbyaddr((char*)&client_addr.sin_addr.S_un.S_addr,4,AF_INET);htons(client_addr.sin_port));printf("Clientname:%s\n",(my_host)?my_host->h_nam

linux - 在服务器中使用 TCP Keep-Alives 摆脱空闲客户端

我有一个服务器来收集来自不同客户端的Tcp数据到某个端口。我有一个场景,每当客户端创建tcp连接并保持空闲状态超过假设30分钟时,我就需要关闭连接。我了解了TCPkeepalive以跟踪对等方是否已死,并且大多数情况下我发现了在客户端使用的示例。同样,我可以在服务器端使用来轮询连接是否处于事件状态吗?此外,在linuxsysctl.conf中,有一个配置文件可以编辑这些值。这似乎是整个tcp连接在某些不活动后被破坏。我需要在一段时间不活动后销毁设备的某些连接,但不会关闭整个tcp端口连接。我正在使用ubuntu创建服务器来收集TCP连接。我可以在服务器代码中使用TCPKeep-Aliv

c# - 管理 TcpClient 连接

我有一个设备(步进电机)通过TCP连接到我的PC。对发送到设备的消息的响应可以在数秒(通常为3到15秒)后返回。为了与设备通信,经过大量阅读,我想出了以下class:publicclassTcpUtil:IDisposable{publiceventActionOnTcpMessage;privateint_port;privatestring_ip;privateTcpClient_client;privateNetworkStream_stream;publicTcpUtil(stringip,intport){_ip=ip;_port=port;_client=newTcpCli

Python 套接字从服务器接收到不一致的消息

所以我对网络很陌生,我使用的是PythonSocket库连接到传输位置数据流的服务器。这里是使用的代码。importsocketBUFFER_SIZE=1024s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect((gump.gatech.edu,756))try:while(1):data=s.recv(BUFFER_SIZE).decode('utf-8')print(data)exceptKeyboardInterrupt:s.close()问题是数据以不一致的形式到达。大多数时候它以正确的形式到达,如下所示:20

如果连接失败,C# 总是重试 tcp 连接

下面是我的代码,用于为我的客户端启动到服务器的tcp连接:Socketclient=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);client.BeginConnect(remoteEP,newAsyncCallback(ConnectCallback),client);连接回调:privatevoidConnectCallback(IAsyncResultar){try{//Retrievethesocketfromthestateobject.Socketclient=(Socket

wpf - WCF如何检测客户端是否存在

正如我的标题所写,背景:我有2种不同类型的应用程序(WPF-silverlight),它们可以相互通信——医生应用程序和患者应用程序——但这并不意味着只有2个应用程序会运行,例如:我可以运行3个医生应用程序和7个病人应用程序。所有这些应用程序都通过tcp连接使用wcf进行通信。通信是实时的(如Messenger应用程序)流每次有应用程序在线(运行)时,我都会在wcf上注册它的连接,因为我需要让其他应用程序知道(实时)有新客户端连接或有新客户端断开连接。问题:可以让其他应用程序知道有传入的应用程序/客户端,但我的问题是,如果此客户端已断开连接,如何让其他应用知道,如果用户正确关闭应用程序