
C, Python, Java都可以,我最近在用Python,很方便,性能上要求不是很苛刻的时候挺好的。Java的socket封了一层,一些底层功能可能不是完全可用,不过应付通常的需求倒是足够了,而Python的socket基本就是原生接口,操作系统支持的基本都支持,甚至可以用raw socket抓底层包。
如果只是普通的C/S结构现在很少直接使用socket了,自定协议实现起来很麻烦,新手也处理不好协议设计的问题,比如说消息如何分片、如何匹配、如何解析,如何实现未来协议上的可扩展和多版本兼容等等。一般都是使用通用的协议,最常见的是HTTP,有非常多的好处,一来Web后端极其成熟,二来各种语言的HTTP包使用都很方便,还很容易拓展到B/S结构上使用AJAX实现Web版的应用。对于需要两个方向的推送的可以使用WebSocket。除此以外,JSON-RPC也是非常简单的RPC协议。除了这些通用协议之外,常见的MySQL、Redis等协议也都有相应的软件包可以使用。现在自己调用socket接口,一般都是有特别的需要,或者需要实现一个没有现成的软件包的协议。
python很方便,也很好理解
现在使用socket编程的场景越来越少,http则越来越多。只有在并发性能作为非常重要的考量因素时,才会用到socket编程。
因此我首先推荐go,性能很高,语言中的goroutine完美支持并发处理。
其次推荐nodejs,nodejs天生的非阻塞模型也很好,新标准es7的async/await让异步处理容易许多。
如果性能的约束特别强,不能够忍受垃圾收集所带来的短暂的挂起,那么选用c++,使用c++11的其他还有java,erlang等,看你是否熟悉了
除了C++, Java, Python,PHP也有Swoole和Workerman高性能Socket服务框架
各种。主要由使用场景和熟悉哪种语言决定
