SOCKET实时传图片
咨询个问题。现在前端大概17个点往回传图片,每张图片30多K,每个点每天6000张图片。其中三个点除了传输图片之外,还要与中心进行信息传递,要求实时性高,但这三个点图片较少,大概要几分钟一张。
现在是所有前端使用同一个端口与中心通讯,而且每次传1024个字节,相当于每张图片要传输几次,导致现在图片传输比较慢,大概3、4S才能传输一张图片,导致前端图片堆积。
现在想到的是将中心多开几个端口,每个前端对应一个端口。或者三个图片较少的前端传递完信息之后将通讯断开,请问这些办法解决吗,还是开的端口多了反倒传输会慢?
亟待解答 谢谢
[解决办法]
图片太多的话,文件比较大的话 建议你用FTP去下载 这样会快很多的
服务端用一些三方免费软件或windows server自带的FTP
开启服务端
客户端CB安装目录下有现成的例子
Program Files\Borland\CBuilder6\Examples\Indy\TrivialFTPClient
Program Files\Borland\CBuilder6\Examples\FastNet\FTP
[解决办法]
用异步代替多线程。不可用Sleep浪费时间,要考虑同时送数据。
我用多端口实时传送数据,以前用的一个一个的送,结果送10个点要2秒,
现在同时送,只要2/10秒。
[解决办法]
前端 17 个点, 服务器端直接用 多线程+阻塞式SOCKET 来做, 性价比应该更高
[解决办法]
另外,设计好传输协议, 尽量采用 TCP ,就不会出现分包组包之类的问题。 这样的要求,实在不需要异步或者完成端口来搞。
[解决办法]
前端是什么设备?采用什么协议的固定端口(TCP/UDP)?如果前端是TCP Server可编程控制使用客户端多线程连接,服务端分块传输图像,传输完毕最后拼接显示。