一、在窗口中添加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做双向通信的简单例子相关推荐

  1. CXF做的webservice简单例子

    CXF介绍:http://baike.baidu.com/view/2742297.htm CXF下载:http://cxf.apache.org/download.html 1:建一个接口 HotT ...

  2. Extjs中加载异步树的最简单例子实现

    <!-- Author:Lovingshu&&Mr Samael Date:2012/06/25 Remark:Teach You How To Build A AsyncTre ...

  3. SEXTANTE中调用任意C++控制台程序的简单例子

    在sextante中单纯利用python或者调用sextante已有算法进行自定义开发,很多情况下速度不咋给力,同样的操作调用QGIS的C++插件比用sextante里的算法要快,有时候快的 还不止一 ...

  4. LabVIEW中的VISA函数串口通信的简单例子

    1.用VISA函数串口将数据读取并以数组的形式展示出来 前面板 程序 2.VISA函数串口数据读取与传出 前面板 程序

  5. .net中使用反射的简单例子

    说明:由于工作原因,本人使用反射的机会不是很多,所以没有必要为了炫耀技术而使用这种技术,不过今天有人问到这方面的问题,所以做了一个简单例子,供初学者参考,代码如下: using System; usi ...

  6. PB中的82个实用技巧

    如何在PB5中自动生成行号 delelte数据窗口中若干行,然后update,出现: "rows changed between retrieve and update No changes ...

  7. VFP中使用winsock控件收发二进制数据

    VFP中使用winsock控件收发网络数据时,如果包含有二进制数据,总是会丢失,或者与实际数据不符,这是由于字符转换的问题引起的. vfp的字符串本质与二进制数据没有任何区别,而所有的OCX控件和CO ...

  8. 关于VB中的 comct132.ocx问题!

    关于VB中的 comct132.ocx问题! 悬赏分:10 - 解决时间:2010-1-9 00:27 我自己做了个小程序,我在我电脑里能运行,可是在别人电脑里不能运行,说什么少 comct132.o ...

  9. PB中打开url链接

    PB中打开url链接 公司项目中,第三方发来个说明,说是要通过打开url连接地址的方式,将参数传给对方的平台,参数的封装采用Json格式, 百度了一通,看了网友们的方法,发现pb中有个inet控件可以 ...

  10. linux 软件集成工具箱,在PB中动态修改SQL语句

    在PB中动态修改SQL语句 分享到: 江苏省南通电信局网管中心 黄莹 ---- PowerBuilder是图形界面的Client/Server应用程序开发环境,可以很容易开发出功能强大的应用程序,在当 ...

最新文章

  1. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 8. 软间隔与支持向量回归
  2. PMP考试错题记录(2)
  3. 升级到asp.net core 3.1遇到的json异常
  4. JZOJ 3.10 1540——岛屿
  5. 微分求积:复化梯形、复化辛浦生
  6. SQL Server 自定义快捷键
  7. Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
  8. boost::container实现显式实例静态向量测试程序
  9. SlickEdit 2010的破解方法
  10. php sqlite教程,在thinkPHP中使用sqlite的教程
  11. Python打印到文件
  12. 经典SQL语句大全(1)
  13. ping 可以ping通,但是dns无法解析,导致ie无法上网问题的解决办法!---winsock2问题[转贴]...
  14. ascll编码表图片_ascii码对照表
  15. Unity 3D项目 - 02 - 角色动画应用
  16. Java软件开发工程师简历模板包装教学问题完整版 【心静思远-9527】
  17. 西门子代理商 上海西纪帮您选型刚刚好
  18. Premiere导入视频之后音频轨没有内容
  19. 电脑操作实用技巧60招
  20. 谷歌公布云游戏平台「Stadia」 预计2019年上线

热门文章

  1. 为什么物理隔离的网络,也会中毒?怎么进行防护?
  2. 安装pycuda的正确办法
  3. WINDOWS10更改主题
  4. java解析获得birt报表的数据_java pojo实体类做birt报表数据源
  5. 云台山网络营销计划_山东云台山两日游|网络营销职业规划范文
  6. c语言入门自学ppt,《C语言基础知识》PPT课件.ppt
  7. 系统同传软件_语情快递 | 手语同传AI,你见过吗?
  8. php window open,【php】window.open()弹出窗口被拦截.
  9. NFS服务及FTP服务
  10. 机器人到底会不会有情感?