C# 1000个socket客户端并发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 1000个socket客户端并发相关的知识,希望对你有一定的参考价值。

各位大神,大家好,我有一个问题比较困扰,目前我要做一个C# socket客户端,同时起1000个并发连接向服务器发数据。一开始我的做法是使用线程池起1000个线程,每个线程起一个socket,然后循环发送数据,运行后发现差不多到100多个socket时,后续的线程就很难分配到时间去运行,于是我又改成每个程序只起100个线程,每个线程起一个socket,然后循环发送数据。然后在10台机器上同时跑达到一千个并发,效果是后续的几个线程也总是很难分配到运行时间。网上看到有些帖子说可以用完成端口实现,然后继续往下调查发现基本上网上的例子都是在说将完成端口用于高并发的服务器端,不知道完成端口能不能用于客户端,如果有,是否有例程?另外,我上面的方法是不是存在不妥(我感觉系统在线程间轮转已经耗费了很大精力),有没有大神能够指点我一下,如何改进?

1000个连接不算太多,有没有试过异步socket。完成端口这类也都是对服务器而言的,对客户端不存在。追问

异步socket也是用于服务端的,我现在想写个并发客户端,测试服务器上的程序的性能

参考技术A 一个客户端程序开一千个Sockel来干嘛,你是测试你客户端的还是在测试服务端?吃饱撑着没事干了

以上是关于C# 1000个socket客户端并发的主要内容,如果未能解决你的问题,请参考以下文章

java socket客户端模拟测试高并发服务器

Socket.io:WebSockets 可以处理多少并发连接?

python3 进程池版的socket并发聊天

c# socket 客户端 循环发包 服务器端粘粘包严重!求高手给我个解决粘包的例子!

非阻塞套接字实现并发处理

服务器中并发与并行的区别