请教一个高性能TCP连接服务器端的问题。
有这样一个需求,在服务器上监听着一个端口,大概有1000个以上的客户端会和服务器保持TCP长连接。
他们直接的通讯量不是很大,平时主要是心跳包比较多,但偶尔会出现需要同时给这1000个客户端发信息的情况。
现在客户端的数量不是很多,我目前的做法是,服务器端每监听到一个新连接,就开一个线程,负责和客户端通讯,同时这个线程不断的查询数据库,如果有需要发送的信息,就发下去。
如果将来客户端多了,请问这样的模式需要如何改进?另外对服务器硬件有没有什么特殊要求?
我担心的主要有:
1,一个程序中开上千甚至上万个线程,是否会有问题?
2,同时有上千个线程去查询数据库,似乎数据库支持不了这么多连接吧?(SQL Server 2000)
3,同时有上千甚至上万个客户端,服务器端的SOCKET要怎么写呢,是不是要用到完成端口之类的?网游的服务器一般能接受多少个连接呢?
4,如果用C#,能否完成上述工作?我目前用的就是C#。