最近把以前的代码梳理了一下,又加进了一些新的思路。代码结构更加合理,性能也有所提升。打算将该库一些的知识点写出来,以供参考。
服务端要在多个端口监听,这种场合并不多见。但作为一个完善的网络库,似乎有必要支持此功能的。槐斗
传统实现方法
如果监听端口个数很少,也可以采用传统的方法。因为accept函数是阻塞的,所以要实现在n个端口监听,就需要n个线程。如果监听端口个数不多,这也不是多大问题。如果监听端口多达几十个,这种方法就有些不妥。线程也是一种资源,线程过多占用资源会增加;也会导致系统负担加重。
更可行的实现方法
实现方法有些曲折,需要一步一步分析;基本并贺的原理就是将socket句柄与事件(event)相关联。Windows有相关的函数可以对多个事件监听,当某个事件被触发,就知道相应的socket有事件到达。可以对该socket做accept,因为已经确定该socket有事件了,所以accept函数会立即返回。这样就达到对多个端口同时监听的目的。
我认为应该如此 *** 作:(我是这样做的)扮腔1、划出类图
2、做一个组件图(选择组建的属性,将language选为java或其他的语言)
3、将组件图拖到该组件所需要组装的类图的模型上(在树形视图中 *** 作)
4、这样,在选中类图的模型点击右键时,就会有java蔡单项,在那里就毕缺孙可手链以生成java代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)