UDP的connect

最近在写一个tcp协议实现的文件上传服务器。只是在局域网用的,怎么说呢?速度太慢了,一个600M的视频文件上传需要20秒左右。实在不知道该怎么提升速度了。

服务器采用的是线程池,对于每个客户端的请求,都有单独的线程去处理。

这就是速度....

了网络带宽,偶尔是20M/s,30M/s,最后不管是用setsockopt增大socket的缓存区大小还是把socket改成非阻塞的(http://blog.csdn.net/shinichr/article/details/23533251),都没有很明显的速度提升。

       通过没有头绪的尝试,最终速度还是个龟样。本来想着把服务器的线程改为一个线程socket读,一个线程写socket读的。可能是我写的太挫了,速度提升也不大。

本来这个速度折腾的我就够受打击的了,最后又让写一个用udp传文件的。好吧,我就在tcp上改吧。

把accept去掉,把connect去掉。把recv改成recvfrom,把send改成sendto。看似简单,但是改完发现客户端怎么也发不到信息到服务器的线程去。不行,还是改回来了。

最后搜了下,才发现udp也可以用connect,udp用connect其实没有什么多大的作用,它其实仅仅是把socket与你要发送的地址绑定在一起,不用每次都弄一个地址了。

这样就可以把这个socket传来传去。不必改我以前的send和recv了。

udp除了丢包,还好吧,这个就暂时不管了。如果要保证udp数据完整性,我只想到加验证,或者把udp封成tcp,其实还是挺麻烦的。暂时没什么好的想法了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值