学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> PowerBuilder >> 如何在POWER BUILDER中使用WINSOCK控件


如何在POWER BUILDER中使用WINSOCK控件



---- 随着资源共享和实时通讯的需要,很多计算机应用程序早已甩开单兵作战的模式,转入联合行动。

---- 网络在计算机世界里,越来越发挥着举足轻重的作用。在WINDOWS应用程序中,处理实时通讯最常用到的还是MICROSOFT公司提供的WINSOCK控件。许多资料都细述了WINSOCK在VB中的使用方法,就连WINDOWS本身提供的hlp文件也是针对VB而写的。笔者因为实际应用的需要,琢磨出了WINSOCK控件在PB中的应用方法。好东西不敢独自享用,拿出来与大家共享。

---- 下面以一个简单程序为例,说明WINSOCK控件在PB中的使用:

---- 一、在窗口中添加WINSOCK控件:

---- 在应用中新开一个窗口,在窗口画板中点击controls-->OLE菜单项,弹出Insert object窗口,单击Insert control标签,从列表框中双击选定Microsoft Winsock control,将winsock的图标贴在窗口上。

---- 在程序中该控件名称定为winsock_a(甲方)和winsock_b(乙方)。

---- 二、设置信息输入输出文本框:

---- 在窗口中增加一个按钮cb_1,两个单行文本框sle_1,sle_2,分别用于输入要发送的字符串和接受对方发送的字符串。

---- 三、设置通讯协议:

---- WINSOCK控件允许用户以UDP和TCP两种协议中任选一种进行通讯。

---- 1.UDP协议设置:UDP协议是一种无连接的通讯协议,在通讯之前,需要绑定remotehost和remoteport属性,如果需要双向通讯,还要设置localport属性。

---- 在甲方(本机地址为:134.1.1.1)窗口的Open事件中加入如下语句:

winsock_a.object.protocol=1
//winsock通讯协议设为UDP协议
winsock_a.object.remotehost="134.1.1.2"
//对方的ip地址
winsock_a.object.remoteport=6000
//对方的winsock通讯端口号
winsock_a.object.localport=6001
//本机的winsock通讯端口号
winsock_a.object.bind
//绑定通讯协议

---- 在乙方(本机地址为:134.1.1.2)窗口的Open事件中加入如下语句:

winsock_b.object.protocol=1
//winsock通讯协议设为UDP协议
winsock_b.object.remotehost="134.1.1.1"
//对方的ip地址
winsock_b.object.remoteport=6001
//对方的winsock通讯端口号
winsock_b.object.localport=6000
//本机的winsock通讯端口号
winsock_b.object.bin
//绑定通讯协议

---- 2.TCP协议设置:TCP协议在通讯前需要进行连接。

---- 在甲方(作为服务器端)窗口的Open事件中加入如下语句:

winsock_a.object.protocol=0
//winsock通讯协议设为TCP协议
winsock_a.object.localport=6001
//本机的winsock通讯端口号
winsock_a.listen()
//启动监听

---- 在甲方winsock_a控件的Connectionrequest事件中加入如下语句:

//接受到对方的连接请求后
if winsock_a.object.state< >0 then
winsock_a.close()
end if
winsock_a.accept(requestID)
//建立直接连接
//requestID是Connectionrequest事件自己的参数

---- 在乙方(作为客户端)窗口的Open事件中加入如下语句:

winsock_b.object.protocol=0
//winsock通讯协议设为TCP协议
winsock_b.object.remotehost="134.1.1.2"
//对方的ip地址
winsock_b.object.remoteport=6000
//对方的winsock通讯端口号
winsock_b.connect() //发出连接请求

---- 3.无论采用哪种协议,都要在窗口的Close事件中加入如下语句:

if winsock_a/*或winsock_b*/.object.state< >0 then
winsock_a.close()
end if

---- 否则可能第二次使用时发生异常问题

---- 三、开始通讯

---- 在按钮cb_1(caption属性设为‘发送’)的click事件中加入如下语句:

winsock_a/*或winsock_b*/.object.send (sle_1.text)

---- 在winsock_a/*或winsock_b*/控件的dataarrival事件中加入如下语句:

//接受到对方数据后
string datastr1
winsock_a/*或winsock_b*/.object.getdata (def datastr1)
sle_2.text=datastr1 //将数据字符串显示在文本框中

---- 以上程序实际上体现了聊天器的底层工作原理,稍加修改扩充就可以做成一个很好的聊天软件。
技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"如何在POWER BUILDER中使用WINSOCK控件"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 如何在POWER BUILDER中使用WINSOCK控件 相关内容
Google搜索中 如何在POWER BUILDER中使用WINSOCK控件 相关内容
雅虎中 如何在POWER BUILDER中使用WINSOCK控件 相关内容
Sogou搜索中 如何在POWER BUILDER中使用WINSOCK控件 相关内容

相关软件 最新回复帖子:

·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描
·巧用Photoshop画笔轻松绘制创意特效
·用Photoshop通道将模糊肖像照片清晰化
·照片处理:Photoshop修复残破照片
·PS CS2新增形状模糊滤镜绘制花布图案


  相关软件 如何在POWER BUILDER中使用WINSOCK控件相关文章
在PowerBuilder中实现数据库的实时过滤 用Enter键来进行窗口上的各个控键的焦点转跳
PB5中如何实现诸如Ms word之类的启动画面 如何在数据窗口(Datawindow)中用Enter代替Tab在字段间移动
PB问题解答之一 PB问题解答之二
PB问答(-) 在PB中使用FoxPro数据库的方法
PB中窗口自动居中 PB 5.0由网络版改为单机版的技巧
在PB程序中如何删除只读文件 Pb中定制打印页长实现连续打印