问题标签 [client-server]
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.
.net - 取消异步远程调用
我有一个客户端-服务器架构,其中客户端使用 .NET Remoting 与服务器通信。服务器处理所有业务逻辑和数据库交互。我需要添加一个可能需要一段时间才能执行的操作,并且它返回的数据集可能非常大。我正在考虑为此使用异步调用。现在问题出现了:假设客户端进行了这个异步调用,操作启动了 SQL 查询,用户要么关闭客户端,要么单击取消——操作会发生什么?有什么方法可以取消挂起的异步调用,它正忙于与 SQL 服务器交谈?
谢谢。
wcf - WCF 可靠会话如何影响消息排序?
Microsoft 文档中提到的关于启用可靠会话的一件事是,该服务将能够按照收到消息的顺序处理消息。
这是否意味着单个会话中的消息按顺序处理?或者这是否意味着服务内所有会话的所有消息都按顺序处理?
我知道 netTcpBinding 已经是可靠的,但没有启用可靠的会话。但是,假设您在没有启用可靠会话的情况下使用 WsDualHttpBinding 之类的东西......如果客户端发送请求 A 然后发送请求 B ,服务可能会在 A 之前接收 B吗?或者这是否意味着如果客户端 A 发送消息 A 而客户端 B 发送消息 B,我可能会在 A 之前处理 B?
c# - c# 中的多客户端、异步套接字、最佳实践?
我正在尝试更好地理解 c# 中的 tcp/ip 套接字,因为我想挑战自己,看看我是否可以纯粹出于教育目的创建一个有效的 MMO 基础设施(游戏世界、地图、玩家等),因为我没有打算成为那些“OMGZ iz 会制作出比 WoW 更好的 r0x0r MMORPG !!!”中的另一个,你知道我在说什么。
无论如何,我想知道是否有人可以阐明如何设计这种系统以及需要什么样的东西,以及我应该注意什么?
我最初的想法是将系统分解为单独的客户端/服务器连接,每个连接(在其自己的端口上)执行特定任务,例如更新玩家/怪物位置,发送和接收聊天消息等。处理数据更容易,因为您并不总是需要在数据上放置标头以了解数据包包含哪些信息。
这是否有意义并且有用还是我只是让事情复杂化了?
非常感谢您的回复。
client-server - 服务器应用程序设计方法
在本科期间,我选择参加使用 POSIX 套接字 for linux 的网络编程课程。作为参考,我们使用了 Internetworking using TCP/IP (comer and stevens) 一书。2008 年它是一个相当过时且仍然适用的文本,它需要一个通过多个服务器设计。
书中没有真正介绍的一种设计是客户端连接到后端应用程序服务器通过单个 TCP 连接向服务器发送多个请求的情况。由于多个请求通过从属套接字发送到服务器,并且响应通过同一个从属套接字发送。当响应和请求通过同一个套接字接收时,从套接字变得拥塞,是否允许在端点之间建立第二个 TCP 连接以实现全双工通信速度是更好的选择?还可以使用哪些其他架构来提高服务器性能?
client-server - 请求,响应和服务器之间有什么区别?
请求,响应和服务器之间有什么区别?
datetime - 维护服务器时间的最佳方法是什么
许多应用程序经常需要服务器时间。
在客户端机器上维护服务器时间的最佳方法是对服务器的请求最小化。
networking - 使用状态机的网络服务器/客户端的通用架构
全部,
所以,我发明了一个简单的协议,我想用它来让客户端与服务器交谈。这是典型的(我认为)三相布局:
- 连接建立(最终将包括能力协商)
- 实际数据交换 - 数据包愉快地来回传输',由相应的接收器解释,并相应地作用于它们
- Connection Teardown - 一方说“不想再”,另一方说“就这样吧”(最终将允许另一方发送一些数据直到完成,而不是简单地关闭对话)
该框架是一个简单的设置:服务器执行 java.net.ServerSocket.accept() 并启动一个线程来处理客户端的传入连接,该客户端创建一个 java.net.Socket() 到服务器所在的主机/端口在等待。双方使用 java.io.InputStream 和 java.io.OutputStream 并互相喷出数据,组装传出和解析传入的消息。很好,到目前为止。
到目前为止,该协议是硬编码的。连接建立和拆除几乎没问题,而数据交换部分——我想是全双工的——几乎是一团糟。
所以,我想,让我们做一个好方法,并使用同名的设计模式来设置状态机。我非常清楚服务器和客户端的状态分别应该是什么,发生转换应该发生什么样的事件,以及发生转换时应该采取什么行动。这看起来不错——在纸面上,就是这样。在实践中,我遇到了几个我无法在纸上解决的问题。
特别是,状态机的输入......有点多样化。我怎么可能同时写入数据、读取数据和检查连接(它可能已关闭或已断开)?此外,第 1 和第 3 阶段应该设置计时器,以避免潜在的无限等待答案的时间。
因此,我将不胜感激任何可以弥合理论状态机和代码状态机之间差距的帮助。
顺便说一句,我也可以阅读 C/C++/C# - 无需翻译成 Java(这是我正在使用的)。
java - j2me 服务发现和可同时发现
我尝试编写一个简单的客户端/服务器应用程序(所有应用程序都是蓝牙服务和客户端)。客户端代码找到蓝牙设备并注册到本地数据库。但是当查询运行时,它是不可发现的。(服务器代码在另一个线程上运行)。我的模拟器可以工作(扫描时间为0),但是当我安装到真机(两个SE和一个诺基亚)时,扫描时间是10-15秒。在此期间,该设备无法被其他设备检测到。
任何的想法?
.net - 远程处理性能会随着时间的推移而降低
我正在开发一个客户端-服务器解决方案,该解决方案使用 .NET 2.0 Remoting(服务器激活、TCP 通道上的二进制格式、Vista Ultimate)进行通信。目前我正在分析应用程序并在同一台机器上运行所有内容。我注意到,如果我启动应用程序,几分钟内一切正常,然后突然每次远程调用都需要几秒钟才能执行。我在两端都登录并记录每个电话。服务器端的实现只需要几分之一秒的时间来执行,而整个远程调用很慢。进一步的分析表明,远程处理在服务器端降级:虽然远程服务的内部工作在几分之一秒内执行,但响应非常慢。如果我重新启动服务器,一切都会再次恢复正常几分钟。
有没有人经历过这样的事情?
谢谢!
更新:我检查过,如果我将远程对象的生命周期配置为 1 天,我仍然遇到同样的问题。
更新:我正在使用 Ingo Ramer 建议的模式(HOWTO:使用基于接口的远程对象和配置文件)来处理我的所有远程处理内容,如果这有什么不同的话。
客户端代码:
服务器端只有正确的配置文件,如下所示:
除了 RemotingConfiguration.Configure("MyDomainService.exe.config", false); 我什么都不做 在我的服务器和客户端代码中都没有。
c++ - Simple Asynchronous Multi-Threaded HTTP request library for C++
I'll be quick and honest: I'm currently trying to write a client/server for an online game. Since I'm poor and limited on resources, I'll be testing the bare basics of the server using a PHP backend, with the eventual goal being to rebuild the server end in C++.
I'm looking for a C++ library for Windows (XP and Vista preferably) that will let me use a finite number of threads, one dedicated to each piece of the networking problem. As an example, I want to use a thread to report the positional information of the player to the server (and to receive responses about positional information of the other players) but I want a different thread to background download in the 3D artwork for the area/players, and a different thread for the built in chat system, etc. These all need to be fairly independent of one another.
I know what I want to do with the library, I've got the design bit figured out, I just feel a bit silly re-inventing the wheel, since I know that a good library for this exact purpose probably already exists. So, what are your suggestions? I need to be able to send data to a server, and accept responses. Ideally, the request needs to trigger an Event when its done (so I can immediately grab the data and do something with it) and I need to be able to handle multiple transactions simultaneously. HTTP is a nice bonus, but I can handle HTTP protocol myself if necessary, especially considering that I plan on dropping it in the long run.
Thanks!