【发布时间】:2012-03-23 08:17:40
【问题描述】:
我有一个 TCP 套接字应用程序,客户端同时向服务器发送巨大的字符串消息。服务器获取这些消息将它们写入 Access DB。所以如果有这么多客户端服务器端无法正确处理每个客户端并且有时服务器会自行关闭。
如果队列中有另一个客户端,在发送消息等待队列之前,有什么方法可以告诉客户端的线程?有了这个服务器就不需要同时处理例如30个客户的需求。
例如;
- 客户端发送消息 => 服务器处理 1 个客户端的需求
- 客户端正在等待 1 个客户端的请求完成,而不是 2 个客户端发送消息 => 服务器正在处理 1 个客户端的请求
- 客户正在等待 2 个客户的要求完成。
我的问题是在我使用 access db 时出现的。在打开访问连接时,将数据保存到表中并关闭数据库需要时间,并且服务器会出现问题:) 如果我不使用访问数据库,我可以毫无问题地收到大量消息。
【问题讨论】:
标签: c# multithreading sockets asynchronous