pb中如何写进行 winsock 编程

jackxrh 2002-03-06 04:20:54
现在我需要在pb 中用 winsock 编程,来得到即时信息.

(1)用pb winsock(其实是 ActiveX,装了 vc++后就有了) 控件试了试,不成功.
(2)我在网上下载了一个封装的 pslib5.dll,winsock.pbl 来直接调用 winsock api.
问题不太大. 但是对封装的socket 我要触发它的事件.如FD_READ,FD_WRITE,FD_CLOSE等.进行相应的处理,在pb里该如何做.

-------肯请各位不吝赐教!

Thanks in advance !

Email: xrh416@sina.com
...全文
281 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hecf 2002-03-06
  • 打赏
  • 举报
回复


微软的OS提供有WINSOCK的输出函数,当然你也可以使用其他控件。这是一样的,没有差别。

如果使用前者:先声明几个外部函数,在程序中按WINSOCK的要求,按序调用即可。
CyberNero 2002-03-06
  • 打赏
  • 举报
回复
在windows的Open事件中,加入如下代码:
sockSocket = create socketstream

a = ws.FD_ACCEPT+ws.FD_READ+ws.FD_WRITE //这里是你希望触发的winsock事件
sockSocket.WSAAsyncSelect(handle(this),1024,a)
//1024是事件的消息号,对应的PB事件是pbm_custom01
因此接下来,给窗口定义一个事件ue_winsock,事件ID当然就选pbm_custom01,这样winsock事件就会触发你定义的ue_winsock了

在ue_winsock中:

iEvent = ws.WSAGetSelectEvent(message.longparm)
if iEvent = ws.FD_READ then
//收到数据
end if
if iEvent = ws.FD_WRITE and bWrite = TRUE then
//发送数据
end if
基本上就是这样了。

原来我也是用的winsock.pbl,但在大数据量传输上好像不太稳定,现在用MS的winsock控件了,很稳定。
jackxrh 2002-03-06
  • 打赏
  • 举报
回复
噫,你还记得我叫 jackxu ?

对vb我不熟,但我想windows\system32里提供的 MSWINSCK.OCX是不会有错的.

但这个控件就是太娇气了,比女朋友还要难侍侯 .....
tiantianpb 2002-03-06
  • 打赏
  • 举报
回复
建议jackxu弟使用vb的控件winsock很简单的,对你这样的高手来说
Hanson_bati_zhu 2002-03-06
  • 打赏
  • 举报
回复
没搞过
帮你UP

400

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧