前端时间学些java的socket编程,学到了tcp和udp协议,众所周知tcp要比udp快,但是快多少呢?周末时间写代码验证一下:
代码就不贴了,最后我把代码上传到csdn上,有兴趣的同学可以看下,自己也算是留个记录
两个主要的测试类:TestUdpAndTcp和TestUdpAndTcpForClient(原来想在一个类(进程)里实现测试,但是测试结果很不理想,最后分析发现我开了100个线程的线程池,有概率会出现100个线程全是客户端或服务端线程,就一直卡死在接收消息上了。。)
6种情况:
/**
* udp和tcp的代码都有了,接下来就是测试tcp和udp的效率了
* 分别用线程池开20个线程,测试三种情况:
* 情况1:1个tcp服务端,10000个客户端分别发送消息
* 情况2:1个tcp服务端,100个客户端发送100次消息
* 情况3:1个tcp服务端,1个tcp客户端发送10000次消息
* 情况4:1个服务端,10000个udp客户端发送1次消息
* 情况5:1个服务端,100个udp客户端发送100次消息
* 情况6:1个服务端,1个udp客户端发送10000次消息
* 每次服务端收到消息之后发送回应
*/
最后的结果:
情况1:382ms
情况2:278ms
情况3:2463ms
情况4:37ms
情况5:38ms
情况