在pb中用winsock控件使用问题
现在我只能实现一对一的连接,无法实现多台机的连接,
我查看了msdn的winsock属性、方法、事件,
其中有vb实现多个连接的方法, 以前unix下用标准c写过侦听端口,
可我还是不知道在pb中怎么实现
请各位朋友多多指教。
请问这个控件到底叫winsock还是叫winsck啊?怎么网上的文章里叫什么的都有呢?难道是两个东东吗? 
                另外还想请教你一个问题啊,用这个控件一对一的连接怎么连啊,我没有中文的介绍啊,谢谢啦!
pb中建立一对一的连接的方法很简单,比方说吧: 
                1、新建一个winsock的应用程序对象; 
                2、新建窗口server,在server中添加winsock控件ole_winsck; 
                3、新建窗口client,在client中也添加winsock控件ole_winsck; 
                4、在server和client的winsock控件的事件中填写代码: 
                在nectionrequest事件中写: 
                if ole_winsck.object.state<>0 then 
                ole_winsck.object.close() 
                end if 
                ole_winsck.object.accept(requestid) 
                messagebox("",string(requestid)) 
                在dataarrival事件中写: 
                messagebox("提示","收到") 
                5、在server的open事件中写代码: 
                if isvalid(ole_winsck) = false then return -1 
                ii_localport=2001 
                //winsock通讯协议设为TCP协议 
                ole_winsck.object.protocol=0 
                //本地侦听的winsock通讯端口号 
                ole_winsck.object.localport=20001// 
                ole_winsck.object.listen() 
                6、在client的open事件中写代码: 
                if isvalid(ole_winsck) = false then return -1 
                //winsock通讯协议设为TCP协议 
                ole_winsck.object.protocol=0 
                //server的ip地址 
                ole_winsck.object.remotehost="132.113.64.202" 
                //server的winsock通讯端口号 
                ole_winsck.object.remoteport=20001 
                ole_winsck.object.connect() 
6、在server的机上首先运行server窗口,进行侦听; 
                7、在client的机上运行client窗口进行连接; 
                如果想发送数据的话,就分别在两个窗口上添加一个send按钮,在send按钮的click事件中添加代码: 
                string as_data="好玩呀" 
                if ole_winsck.object.state = 7 then 
                ole_winsck.object.senddata(as_data) 
                MessageBox("提示","通知通信控制系统成功!",Information!) 
                return 1 
                else 
                MessageBox("警告","通知通信控制系统失败!",StopSign!) 
                return -1 
                end if 
在SERVER 端收到一个accept()后,需打开一个 
                新的WINSOCK事件(即需调用新的WINSCOK控件) 
                成功后,该WINSCOK控件与CLIENT对话,原WINSCOK控件 
                继续进行监听,如果有新的连接要求,则产生 
                一个accept()后,又打开一个新的WINSOCK事件 
                这样,就实现一个SERVER 端对多个CLIENT对话, 
                也能实现CLIENT间对话(通过SERVER 端的转接)
              

 减小字体
减小字体 增大字体
增大字体



 请扫描二维码添加站长微信
请扫描二维码添加站长微信