最后更新:2022-08-03 19:01:36 手机定位技术交流文章
1.将WINSOCK控件添加到窗口中:
在应用中新开一个窗口,在窗口画板中点击controls-->OLE菜单项,弹出
Insert object窗口,单击Insert control标签,从列表框中双击选定
Microsoft Winsock control,将winsock的图标贴在窗口上。
在程序中,控件叫做winsock_a(A侧)和winsock_b(B侧)。
设置信息的输入和输出文本框:
在窗口中添加cb_1按钮,两个单行文本框sle_1,sle_2,用于输入
发送的字符串和接受的字符串。
三、设置通讯协议:
WINSOCK控制允许用户选择UDP和TCP协议之间的通信。
1.UDP协议设置:UDP协议是未连接的通信协议,在通信之前必须被绑定
定remotehost和remoteport属性,如果需要双向通讯,还要设置localport属性
。
在A-side (主机地址:)窗口中将下列句子添加到打开事件中:
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协议。
在A侧(作为服务器侧)窗口中,将下列句子添加到打开事件中:
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事件自己的参数
下列句子被添加到B侧(作为客户端)窗口的开放事件:
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.使用Whichever协议,将下列句子添加到窗口关闭事件中:
if winsock_a/*或winsock_b*/.object.state< >0 then
winsock_a.close()
end if
否则,第二个使用可能会出现异常问题
四、开始通讯
在按钮cb_1(caption属性设为‘发送’)的click事件中加入如下语句:
winsock_a/*或winsock_b*/。对象。发送(sle_1.(Text)
将下列句子添加到winsock_a/*或winsock_b*/控件的数据到达事件中:
//收到另一方的资料后
string datastr1
winsock_a/*或 winsock_b*/。 object.getdata (def datastr1)
sle_2.text=datastr1 // 在文本框中显示数据字符串
上面的程序实际上体现了口语的基本工作原理,并且可以通过小修改和扩展来完成
这是一个非常好的聊天软件。
本文由 在线网速测试 整理编辑,转载请注明出处。