服务器如何 同时 向多个终端传送数据文件,
如果是监听线程的话,他可以一直等待连接,阻塞式接收,这个时候无连接他不工作,只是一个等待的状态。但是有些地方我没想清楚,比如说同时向两个IP传输数据,怎么才能同时传呢?因为传输线程一旦执行,TCP方式向一个指定的IP发送数据,发完才处理别的事情,难道是说发送一点数据等待一下使用设置windows事件信号或则使用锁,下个线程向别的IP发送吗?听说有一种异步IO方式 WSAOVERLAPPED重载结构 采用哪些方式能够解决TCP协议下的同时向多个终端传输数据呢?希望能够给个思路或则方法,最好有点实例之类的~!谢谢大家!!!当然如果采用UDP协议的话这些问题就可以绕过去!
如果是监听线程的话,他可以一直等待连接,阻塞式接收,这个时候无连接他不工作,只是一个等待的状态。但是有些地方我没想清楚,比如说同时向两个IP传输数据,怎么才能同时传呢?因为传输线程一旦执行,TCP方式向一个指定的IP发送数据,发完才处理别的事情,难道是说发送一点数据等待一下使用设置windows事件信号或则使用锁,下个线程向别的IP发送吗?听说有一种异步IO方式 WSAOVERLAPPED重载结构 采用哪些方式能够解决TCP协议下的同时向多个终端传输数据呢?希望能够给个思路或则方法,最好有点实例之类的~!谢谢大家!!!当然如果采用UDP协议的话这些问题就可以绕过去!
能说的在详细一些吗?循环发送 不也是队列中取一个IP发数据,结束后再取队列中下一个IP发数据吗?怎么能同时向多个IP发送呢?
我不太理解您的想法!
首先不使用UDP广播方式,安全等诸多因素考虑。
我发送的数据不是少量信息,例如大到1G的数据,在服务器端我单独创建了一个发送数据的线程,向终端发送数据,在这个线程里面我连接终端(也就是说它请求连接终端),终端单独创建出一个监听线程,监听是否有服务器连接要求给它传送数据。所以说还是没有解决
但是还是感谢各位热心的帮忙
这里就是突破口就是入口点!!!估计如果是手动的话 就能够实现TCP"同时"向多个终端传送数据了!!啊哈哈!!明天尝试一下!
其实类似的还有好多如临界区等等,只不过当时自己理解错误!!导致思路偏差!
2,但是accept成功以后,就另开一个线程处理,然后将socket保存
3,使用“观察者模式”,你会方便很多
服务器程序基本都是向一个或多个终端传送数据的了(ftp服务器,http服务器,http/socks代理服务器,游戏服务器等).最简单模型:多线程阻塞模型,每个线程处理一个客户的所有请求.
优点:简单,容易入门,代码相应其它模型要短小得多.要注意的只是一些共享数据要设置临界.
缺点:不适合大型服务器,因为一个进程可以创建的线程是有限的,而且线程间切换还是挺需要CPU时间的,还有相应使用更多的系统资源(虚拟内存,物理内存等)比较复杂模型:异步模型(消息机制或I/O信号机制),一个或几个线程处理所有客户端的请求
优点:更好地利用系统资源处理大量的客户请求,适合编写能处理很大量请求的服务器软件.
缺点:编写相应地困难,不太适合于入门新人,对代码质量要求相应比较高