网站首页  |  幼儿教育  |  中小学教育  |  电脑教育  |  英语教育  |  教育论文  |  家长教育 设为首页加入收藏联系投稿 
 位置: 中国教育学习网 > 电脑教育 > 程序设计 > PowerBuiler > 正文

在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 端的转接)

收藏此文  |  打印 查看:  

 
  • 上一篇教程:

  • 下一篇教程:

  •   GoogLe
     
      最新推荐
  • 此栏目下没有推荐教程

  •   关注热点

      GoogLe

     
    Powered by Cn-Education.Com (c) 2005-2008 中国教育学习网 教育网站长QQ交流群60041790
    设为首页  |  加入收藏  |  版权申明  |  广告服务  |  联系我们  |  友情链接  |  网站地图  |  返回顶部 ↑