我现在有这样的一个项目,需要用SOCKET做服务器端与客户端沟通,每个连接每天的数据量不会很多(也就是说1个连接一天也达不到1KB的数据流量),但连接数量也就是客户端可能很多(肯定超过100以上),这样做,C#是否可以胜任呢?由于我是做网站出身,所有软件不太懂。所以请教一下各位路过的前辈,不知道可行性如何。另外,如果用别的方式,也就是说服务器端没有数据需要发送给客户端,这条连接就关闭,只有服务器需要连接客户端才执行连接,是否可行,当然,这是那种“网站”形式。也就是说,类似于服务器端访问客户端的“类网站程序”发送并接收数据。还有,如果这样的可行性不高,也就是说连接量大C#不能胜任,在考虑到开发与运行环境下,采用什么程序开发比较合适呢?
TCP建立一次连接的时间都可以发送好几个UDP包了,但是简单方便,不用管连数是否送到,接收端是否需要重新按顺序组装包的问题
UDP的话自己要写代码实现确保对方一定收到,收到的包可能是乱序的,需要重新组合楼主如果是做网站出身的话,可以考虑基于ASP.NET的WebService来实现另外网络数据传输再快也快不过本机内存的数据交换,C#就算是相对其它语言Native性能上有些弱,但处理数据的速度也远远大于Socket接收发送的速度,所以语言本身不是问题,主要还是看你怎么应用
您的意思是说,如果连接量多,但数据量小的情况下,c#也可以胜任我的要求么???
之所以我这样问,是因为,听说C#做的SOCKET 连接量达到100以上,效率就很低!而且很多前辈都这样告诉过我……
socket是操作系统帮你搞定的,这个和用什么语言没有关系,我也说了UDP虽然是不可靠连接,但是可以通过自己写代码来保证可靠性,QQ不就是这么做的么。另外既然是在.NET上混的,就要对C#要有信心,不要把C#想得这么弱,就写应用程序这一块来讲,其它语言能实现的C#同样可以实现。
其实就楼主这样的情况用什么语言不在于开发人员,而是看具体需要,比如说客户端是不是允许我们装framework(这是限制C#Winform程序发展的很大一个原因),如果不行的话不不要考虑了
任何程序写的TCP连接数达到这样高的情况效率都会降得很低的,C#本质上也是调用的系统API来实现的,这个和程序语言没有关系
至于对C#的信心,我觉得,它还是很优异的,起码快捷,方便,不过,因为兄弟我以前没做过C#的WINFORM ,也不太了解SOCKET的脾气,所以要先请教一下,做到尽量少走弯路。