云外归鸟工作室网站

标题: 网络套接字支持库(2.2#0版更新) [打印本页]

作者: 云外归鸟    时间: 2010-10-9 15:12
标题: 网络套接字支持库(2.2#0版更新)
本帖最后由 云外归鸟 于 2011-5-13 01:29 编辑

UDP通信时可以取得发送者的IP地址和端口。有两个组件:
一、异步套接字。为用户界面事件型的,接收发送连接都有事件通知。
二、同步套接字。已经封装成了一个TCP服务器,虽然表面是事件通知,但是内部是创建多线程的。因为有人说原来的TCP服务器模块连接数太少,所以编了个组件试试。何为同步套接字?即发送后和接收时都要等待用户一段时间,在这段时间内有用户响应或者直到超时才返回,但因为是工作在辅助线程里,不会影响进程(主线程)。
有详细的例程:下载网页、WEB服务器、UDP聊天的和上传文件

2.2#0版更新
支持静态库编译

2.0#1版更新
1、异步套接字类型增加“置为广播型”、“是否可写”和“是否可读”方法。
2、TCP服务器类型的线程池改用龚辟愚的多线程支持库的源码,支持设置等待线程数、等待时间,堆栈大小。并支持在线程中创建和使用COM对象。可组建高性能的服务器。
3、修改了WEB服务器例子,支持断点续传和中文路径名。
4、增加了网络留言板的例子,做为B/S应用示范。
5、增加用做线程协调的程序段许可证类。
2.0#2版更新
修改了在WIN98ME下线程池不能使用的问题(原线程池代码的BUG,据说还有30%的人还在用WIN98,所还是要继续更新)
2.0#3版更新
同步套接字的“接收”方法增加超时错误码反馈,用于区分接收的数据为空时,是等待超时还是被用户断开连接。
这点很重要,因为这样可以相当有了客户端断开事件
例:
.版本 2
.支持库 eSocket
.判断循环首 (控制)  ' 为全局变量,停止服务器时要退出所有线程的循环
    数据 = 当前客户.接收 (5)
    .如果真 (数据 = {  })
        .如果 (当前客户.取错误代码 () = #错误代码.WSAETIMEDOUT)  ' 原因为超时,而非被用户断开
            输出调试文本 (“没收到数据,继续等待...”)
            到循环尾 ()
        .否则
            输出调试文本 (“被用户断开了”)
            跳出循环 ()
        .如果结束
    .如果真结束
    输出调试文本 (“外理数据:”, 到文本 (数据))
.判断循环尾 ()

2.0#4版更新
修改同步套接字在客户断开时发送死锁的BUG和修改服务器忙时会暂停的问题
2.1#0版更新
据部分网友说端口有时取出会为负,这是因为易语言没有无符号短整型(端口用的USHORT),所以干脆把所有端口的参数改变整数型的,这样就不会有负数的现象,但是连接或绑定端口实际有效范围只能是1~65535,超过就无效了,也有说是1~32767的。
[attach]176[/attach]


作者: mgkiller    时间: 2010-10-11 13:36
坐沙发,大鸟的东西得顶。
作者: lixiang    时间: 2010-10-11 19:51
支持牛人作品!
作者: 三强工作室    时间: 2010-10-12 19:01
支持一下!
作者: kaokao    时间: 2010-10-12 20:15
大鸟的东西得顶
作者: xiayoucao    时间: 2010-10-29 09:32
支持大鸟。。。。
作者: djese    时间: 2010-11-19 17:53
支持大鸟。。。
作者: imypgy    时间: 2010-11-21 22:42
谢谢分享
作者: City7    时间: 2010-11-23 08:51
支持小鸟!
作者: rainbar    时间: 2010-11-23 23:56
终于找到例程了...谢谢.
作者: bu105    时间: 2010-12-7 14:30
支持大鸟。。。好同志
作者: 幽日清風    时间: 2010-12-18 00:05
同步功能好像缺少了一部分功能,还是说可以从异步类调用
作者: cdmmye    时间: 2010-12-24 22:02
开始静态链接...
LIBC.lib(crt0dat.obj) : error LNK2005: __cinit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: _exit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __exit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __cexit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __c_exit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __C_Exit_Done already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __C_Termination_Done already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __exitflag already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __wpgmptr already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __pgmptr already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___winitenv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __wenviron already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___initenv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __environ already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___wargv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___argv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___argc already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __winminor already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __winmajor already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __winver already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __osver already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __umaskval already defined in libcmt.lib(crt0dat.obj)
E:\程序包\生成文件\dlq.dat : fatal error LNK1169: one or more multiply defined symbols found
静态连接失败
作者: cdmmye    时间: 2010-12-24 22:02
这个控件是否和什么冲突了无法编译
作者: zytlj    时间: 2010-12-29 19:03
好东东,支持大鸟。
作者: ecom    时间: 2011-1-1 08:34
顶你的肺
作者: fyqingshan    时间: 2011-1-6 21:09
顶下,终于找到例程了
作者: cz88    时间: 2011-1-11 09:46
下载研究研究
作者: Pmdsplayer    时间: 2011-1-11 19:32
支持下
作者: 56766876    时间: 2011-5-19 17:57
谢谢 支持云外归鸟
作者: 14181663    时间: 2012-3-23 21:59
顶啊!~~~~
作者: 逸小尘    时间: 2012-4-2 22:55
感谢大鸟分享
作者: ntjan    时间: 2012-4-25 13:16
相当好的东西,找了半天找到这里。
作者: sawar    时间: 2012-6-7 13:25
网络套接字支持库BUG,TCP服务器启动后,如果没有客户连接的情况下停止服务器,返回假,而且CPU使用率会在50%左右。
作者: sawar    时间: 2012-6-7 14:00
在试验了次,就算有客户连接,停止也会假。

作者: qq11716540    时间: 2012-8-1 23:03
不支持不行啊   使劲顶
作者: 1284178966    时间: 2012-8-3 12:36
谢谢分享
作者: ailee    时间: 2012-8-31 00:43
静态编译还是有BUG

D:\我的文档\AILEE.EXE : fatal error LNK1120: 3 unresolved externals
连接失败
  正常编译可以通过静态就不行
作者: ailee    时间: 2012-8-31 14:18
ailee 发表于 2012-8-31 00:43
静态编译还是有BUG

D:\我的文档\AILEE.EXE : fatal error LNK1120: 3 unresolved externals

是不是支持库有冲突
作者: ailee    时间: 2012-8-31 14:45
ailee 发表于 2012-8-31 14:18
是不是支持库有冲突

找到冲突了“和应用接口支持冲突
作者: ailee    时间: 2012-9-3 22:02
和API取系统版本 CPU名称  等有冲突  
作者: yelangwy    时间: 2012-9-5 01:08
老大这里这么多精品,收藏了。
作者: xxoo    时间: 2012-9-11 09:32
呵呵,来晚了,不过也顶大鸟的好东西
作者: ailee    时间: 2012-9-18 20:30
.版本 2
.支持库 eAPI

硬盘列表 = 取驱动器列表 (1)
光驱列表 = 取驱动器列表 (2)
移动列表 = 取驱动器列表 (3)
支持库冲突 无法静态编译
作者: a954162368    时间: 2012-10-27 12:00
看看                      拿来
作者: medias    时间: 2012-11-8 23:29
不错啊,就是不会用啊
作者: 802241    时间: 2012-12-22 22:13
怎么用啊

作者: oyg    时间: 2012-12-24 22:13
终于找到例程了...谢谢.
作者: wangtao74    时间: 2012-12-28 10:04
支持牛人作品!
作者: a952135763    时间: 2012-12-31 20:10
先感谢 呵呵!
作者: q1101234    时间: 2013-2-20 14:06
学习了!!!!!!!!!!!
作者: j6652289j1    时间: 2013-2-28 09:34
回复下载 ...
作者: st0754    时间: 2013-7-28 08:33
支持一下!
作者: 8100110    时间: 2013-8-17 00:29
顶个 这么多人看 为什么没人顶呢~~
作者: liuwentao3079    时间: 2013-9-23 11:56
学习了学习了
作者: st0754    时间: 2013-10-22 12:00

支持一下!
作者: 我家有毛草屋    时间: 2013-10-25 22:26
支持一下!希望继续跟新!
作者: zllhfl    时间: 2013-12-24 21:01
.版本 2

.子程序 _异步套接字1_数据到达
.参数 字节数, 整数型
.局部变量 头信息, 文本型
.局部变量 长度信息, 文本型
.局部变量 首位
.局部变量 末位
.局部变量 当前数据, 文本型
.局部变量 hh, 字节集
.局部变量 vv, 整数型
.局部变量 收到数据, 文本型, 静态
.局部变量 n, 整数型
.局部变量 十六进制文本, 文本型
.局部变量 文本, 文本型

复制端口 = 取事件组件 ()

取事件组件 (),,好像没有效果,不知道怎么搞
作者: 359638888    时间: 2014-7-4 09:32
烦死了这个很好用、就是狗日的360报这个是病毒
作者: ilook8    时间: 2015-11-16 21:39
谢谢大鸟
作者: bestweihua    时间: 2016-1-6 10:28
吴涛的生日是1973年11月15,幸好我猜对了
作者: 陈叨叨    时间: 2016-5-17 12:47
十分感谢!
作者: tang12347    时间: 2016-7-11 14:14
为什么双客户端,会有一个正在连接?
一个程序里两个组件
作者: tang12347    时间: 2016-7-11 14:15
LIBC.lib(crt0dat.obj) : error LNK2005: __cinit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: _exit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __exit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __cexit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __c_exit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __C_Exit_Done already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __C_Termination_Done already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __exitflag already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __wpgmptr already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __pgmptr already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___winitenv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __wenviron already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___initenv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __environ already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___wargv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___argv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___argc already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __winminor already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __winmajor already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __winver already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __osver already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __umaskval already defined in libcmt.lib(crt0dat.obj)
作者: 飞扬工作室    时间: 2016-11-19 19:03

我来了了
作者: oyg    时间: 2018-10-28 21:32
网络套接字支持库(2.2#0版更新)




欢迎光临 云外归鸟工作室网站 (http://www.ywgn.net/) Powered by Discuz! X3