在PB中使用WINSOCK.OCX做双向通信的简单例子
一、在窗口中添加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 //将数据字符串显示在文本框中
以上程序实际上体现了聊天器的底层工作原理,稍加修改扩充就可以做成
一个很好的聊天软件。
转载于:https://www.cnblogs.com/youyoutianxia/p/3184269.html
在PB中使用WINSOCK.OCX做双向通信的简单例子相关推荐
- CXF做的webservice简单例子
CXF介绍:http://baike.baidu.com/view/2742297.htm CXF下载:http://cxf.apache.org/download.html 1:建一个接口 HotT ...
- Extjs中加载异步树的最简单例子实现
<!-- Author:Lovingshu&&Mr Samael Date:2012/06/25 Remark:Teach You How To Build A AsyncTre ...
- SEXTANTE中调用任意C++控制台程序的简单例子
在sextante中单纯利用python或者调用sextante已有算法进行自定义开发,很多情况下速度不咋给力,同样的操作调用QGIS的C++插件比用sextante里的算法要快,有时候快的 还不止一 ...
- LabVIEW中的VISA函数串口通信的简单例子
1.用VISA函数串口将数据读取并以数组的形式展示出来 前面板 程序 2.VISA函数串口数据读取与传出 前面板 程序
- .net中使用反射的简单例子
说明:由于工作原因,本人使用反射的机会不是很多,所以没有必要为了炫耀技术而使用这种技术,不过今天有人问到这方面的问题,所以做了一个简单例子,供初学者参考,代码如下: using System; usi ...
- PB中的82个实用技巧
如何在PB5中自动生成行号 delelte数据窗口中若干行,然后update,出现: "rows changed between retrieve and update No changes ...
- VFP中使用winsock控件收发二进制数据
VFP中使用winsock控件收发网络数据时,如果包含有二进制数据,总是会丢失,或者与实际数据不符,这是由于字符转换的问题引起的. vfp的字符串本质与二进制数据没有任何区别,而所有的OCX控件和CO ...
- 关于VB中的 comct132.ocx问题!
关于VB中的 comct132.ocx问题! 悬赏分:10 - 解决时间:2010-1-9 00:27 我自己做了个小程序,我在我电脑里能运行,可是在别人电脑里不能运行,说什么少 comct132.o ...
- PB中打开url链接
PB中打开url链接 公司项目中,第三方发来个说明,说是要通过打开url连接地址的方式,将参数传给对方的平台,参数的封装采用Json格式, 百度了一通,看了网友们的方法,发现pb中有个inet控件可以 ...
- linux 软件集成工具箱,在PB中动态修改SQL语句
在PB中动态修改SQL语句 分享到: 江苏省南通电信局网管中心 黄莹 ---- PowerBuilder是图形界面的Client/Server应用程序开发环境,可以很容易开发出功能强大的应用程序,在当 ...
最新文章
- 谢文睿:西瓜书 + 南瓜书 吃瓜系列 8. 软间隔与支持向量回归
- PMP考试错题记录(2)
- 升级到asp.net core 3.1遇到的json异常
- JZOJ 3.10 1540——岛屿
- 微分求积:复化梯形、复化辛浦生
- SQL Server 自定义快捷键
- Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
- boost::container实现显式实例静态向量测试程序
- SlickEdit 2010的破解方法
- php sqlite教程,在thinkPHP中使用sqlite的教程
- Python打印到文件
- 经典SQL语句大全(1)
- ping 可以ping通,但是dns无法解析,导致ie无法上网问题的解决办法!---winsock2问题[转贴]...
- ascll编码表图片_ascii码对照表
- Unity 3D项目 - 02 - 角色动画应用
- Java软件开发工程师简历模板包装教学问题完整版 【心静思远-9527】
- 西门子代理商 上海西纪帮您选型刚刚好
- Premiere导入视频之后音频轨没有内容
- 电脑操作实用技巧60招
- 谷歌公布云游戏平台「Stadia」 预计2019年上线
热门文章
- 为什么物理隔离的网络,也会中毒?怎么进行防护?
- 安装pycuda的正确办法
- WINDOWS10更改主题
- java解析获得birt报表的数据_java pojo实体类做birt报表数据源
- 云台山网络营销计划_山东云台山两日游|网络营销职业规划范文
- c语言入门自学ppt,《C语言基础知识》PPT课件.ppt
- 系统同传软件_语情快递 | 手语同传AI,你见过吗?
- php window open,【php】window.open()弹出窗口被拦截.
- NFS服务及FTP服务
- 机器人到底会不会有情感?