国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

如何在POWER BUILDER中使用WINSOCK控件

2024-07-21 02:10:24
字體:
供稿:網(wǎng)友
  • 網(wǎng)站運(yùn)營(yíng)seo文章大全
  • 提供全面的站長(zhǎng)運(yùn)營(yíng)經(jīng)驗(yàn)及seo技術(shù)!
  • 如何在power builder中使用winsock控件
    湖南省懷化市電信局計(jì)算機(jī)中心
    達(dá)偉春


    ---- 隨著資源共享和實(shí)時(shí)通訊的需要,很多計(jì)算機(jī)應(yīng)用程序早已甩開單兵作戰(zhàn)的模式,轉(zhuǎn)入聯(lián)合行動(dòng)。


    ---- 網(wǎng)絡(luò)在計(jì)算機(jī)世界里,越來越發(fā)揮著舉足輕重的作用。在windows應(yīng)用程序中,處理實(shí)時(shí)通訊最常用到的還是microsoft公司提供的winsock控件。許多資料都細(xì)述了winsock在vb中的使用方法,就連windows本身提供的hlp文件也是針對(duì)vb而寫的。筆者因?yàn)閷?shí)際應(yīng)用的需要,琢磨出了winsock控件在pb中的應(yīng)用方法。好東西不敢獨(dú)自享用,拿出來與大家共享。


    ---- 下面以一個(gè)簡(jiǎn)單程序?yàn)槔f明winsock控件在pb中的使用:


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


    ---- 在應(yīng)用中新開一個(gè)窗口,在窗口畫板中點(diǎn)擊controls-->ole菜單項(xiàng),彈出insert object窗口,單擊insert control標(biāo)簽,從列表框中雙擊選定microsoft winsock control,將winsock的圖標(biāo)貼在窗口上。


    ---- 在程序中該控件名稱定為winsock_a(甲方)和winsock_b(乙方)。


    ---- 二、設(shè)置信息輸入輸出文本框:


    ---- 在窗口中增加一個(gè)按鈕cb_1,兩個(gè)單行文本框sle_1,sle_2,分別用于輸入要發(fā)送的字符串和接受對(duì)方發(fā)送的字符串。


    ---- 三、設(shè)置通訊協(xié)議:


    ---- winsock控件允許用戶以u(píng)dp和tcp兩種協(xié)議中任選一種進(jìn)行通訊。


    ---- 1.udp協(xié)議設(shè)置:udp協(xié)議是一種無連接的通訊協(xié)議,在通訊之前,需要綁定remotehost和remoteport屬性,如果需要雙向通訊,還要設(shè)置localport屬性。


    ---- 在甲方(本機(jī)地址為:134.1.1.1)窗口的open事件中加入如下語句:


    winsock_a.object.protocol=1//winsock通訊協(xié)議設(shè)為udp協(xié)議winsock_a.object.remotehost="134.1.1.2"http://對(duì)方的ip地址winsock_a.object.remoteport=6000//對(duì)方的winsock通訊端口號(hào)winsock_a.object.localport=6001//本機(jī)的winsock通訊端口號(hào)winsock_a.object.bind//綁定通訊協(xié)議


    ---- 在乙方(本機(jī)地址為:134.1.1.2)窗口的open事件中加入如下語句:


    winsock_b.object.protocol=1//winsock通訊協(xié)議設(shè)為udp協(xié)議winsock_b.object.remotehost="134.1.1.1"http://對(duì)方的ip地址winsock_b.object.remoteport=6001//對(duì)方的winsock通訊端口號(hào)winsock_b.object.localport=6000//本機(jī)的winsock通訊端口號(hào)winsock_b.object.bin//綁定通訊協(xié)議


    ---- 2.tcp協(xié)議設(shè)置:tcp協(xié)議在通訊前需要進(jìn)行連接。


    ---- 在甲方(作為服務(wù)器端)窗口的open事件中加入如下語句:


    winsock_a.object.protocol=0//winsock通訊協(xié)議設(shè)為tcp協(xié)議winsock_a.object.localport=6001//本機(jī)的winsock通訊端口號(hào)winsock_a.listen()//啟動(dòng)監(jiān)聽


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


    //接受到對(duì)方的連接請(qǐng)求后if winsock_a.object.state<>0 thenwinsock_a.close()end ifwinsock_a.accept(requestid)//建立直接連接//requestid是connectionrequest事件自己的參數(shù)


    ---- 在乙方(作為客戶端)窗口的open事件中加入如下語句:


    winsock_b.object.protocol=0//winsock通訊協(xié)議設(shè)為tcp協(xié)議winsock_b.object.remotehost="134.1.1.2"http://對(duì)方的ip地址winsock_b.object.remoteport=6000//對(duì)方的winsock通訊端口號(hào)winsock_b.connect() //發(fā)出連接請(qǐng)求


    ---- 3.無論采用哪種協(xié)議,都要在窗口的close事件中加入如下語句:


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


    ---- 否則可能第二次使用時(shí)發(fā)生異常問題


    ---- 三、開始通訊


    ---- 在按鈕cb_1(caption屬性設(shè)為‘發(fā)送’)的click事件中加入如下語句:


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


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


    //接受到對(duì)方數(shù)據(jù)后string datastr1winsock_a/*或winsock_b*/.object.getdata (def datastr1)sle_2.text=datastr1 //將數(shù)據(jù)字符串顯示在文本框中


    ---- 以上程序?qū)嶋H上體現(xiàn)了聊天器的底層工作原理,稍加修改擴(kuò)充就可以做成一個(gè)很好的聊天軟件。
    發(fā)表評(píng)論 共有條評(píng)論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 辛集市| 衡水市| 永昌县| 思南县| 马边| 虞城县| 长汀县| 白水县| 长海县| 仙游县| 磴口县| 临朐县| 云安县| 佛山市| 沁水县| 博乐市| 湘乡市| 洛扎县| 广东省| 馆陶县| 工布江达县| 沈丘县| 博乐市| 洪泽县| 镇康县| 新平| 东光县| 沾化县| 盐边县| 鄯善县| 文化| 九龙城区| 鸡泽县| 大足县| 湖南省| 宜阳县| 赫章县| 麟游县| 城口县| 渝北区| 凤山县|