当前位置:首页 > > 充电吧
[导读]网络在计算机世界里,越来越发挥着举足轻重的作用。在WINDOWS应用程序中,处理实时通讯最常用到的还是MICROSOFT公司提供的WINSOCK控件。许多资料都细述了WINSOCK在VB中的使用方法,

网络在计算机世界里,越来越发挥着举足轻重的作用。在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 //将数据字符串显示在文本框中

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

7月25日消息,据媒体报道,SpaceX卫星互联网服务星链周四表示,其业务正在经历网络故障。

关键字: 星链 通讯

上海2025年3月17日 /美通社/ -- 3月14日, "2025 英飞凌消费、计算与通讯创新大会"(ICIC 2025,以下同)在深圳举行。本届大会汇聚600多位业界精英,就AI、机器人、边缘计算、氮化镓应用等话题展...

关键字: 英飞凌 通讯 数据中心 氮化镓

中山2025年3月6日 /美通社/ -- 2025年3月3-6日,领先的无线技术创新企业通宇通讯在巴塞罗那2025年世界移动通信大会(MWC)上发布了其开创性的MacroWiFi产品。这款新产品标志着无线通信技术在大型户...

关键字: MACRO Wi-Fi 通讯 世界移动通信大会

现代通讯电子设备的抗干扰测试己经成为必须的测试项目,主要的干扰类型为噪声干扰。在通信信道测试和电子对抗领域里,噪声始终是声始终是最基本、最常用的干扰源之一。

关键字: 通讯 电子设备

香港2024年10月31日 /美通社/ -- 2024年10月17日,2024 CAHK STAR Award(2024香港通讯业联会非凡年奖)颁奖典礼在香港圆满落幕。中国电信国际荣获"Best AI Appl...

关键字: 中国电信 ST AI 通讯

加利福尼亚州贝尔蒙特2024年10月21日 /美通社/ -- 全球领先的AI驱动的企业通讯解决方案提供商RingCentral, Inc.(纽约证券交易所代码:RNG)宣布,Gartner已将RingCentral评为2...

关键字: CENTRAL 通信 GARTNER 通讯

随着现代电子技术的发展,在通讯、雷达、宇航、电视广播、遥控遥测和电子测量等使用领域,对信号源的频率稳定度、频谱纯度、范围和输出频率提出了越来越高的要求。

关键字: 通讯 雷达 宇航

中国乌鲁木齐2024年10月15日 /美通社/ -- 以"人工智能与媒体变革"为主题的第六届世界媒体峰会14日上午在乌鲁木齐开幕。 10月14日,新华通讯社社长傅华在第六届世界媒体峰会上发言 来自...

关键字: 人工智能 人工智能技术 通讯 数字化

全球电源解决方案领导者全汉集团将于2024 年台北国际电脑展(Computex 2024) 上展示其创新产品。包含边缘AI、网路通讯和 USB PD 电源解决方案。

关键字: USB 电脑 通讯 电源解决方案

无线通讯技术在现代社会中发挥着越来越重要的作用,然而在实际使用过程中,会遭遇各种形式的干扰,影响通信质量。

关键字: 无线通信 通讯 噪声干扰
关闭