图1
用PB编写WinSock TCP/IP应用程序的第一步是将Winsock.pbl加到应用程序中,然后声明如下全局变量: Winsock ws Boolean b—tcp—active //用于检验ws是否初始化成功 PowerObject gpo—null//全局空对象 在应用程序的Open事件加入下列代码: ws=Create Winsock //初始化Winsock的一个实例 SetNull(gpo—null)//ws的函数中用到空对象gpo—null 在应用程序的Close事件加入下列代码:
图2
Destroy ws//销毁ws对象 完成以上工作后,就可以着手编程了,下面介绍如何利用Socket进行通信。 1.用数据报式Socket向本机的7号端口发送数据 TCP和UDP协议规定了传输层端口的长度为16比特,因此TCP和UDP软件可以使用216个不同的端口进行通信。尽管如此,编程时最好不要使用前1024个端口,因为这个范围内很多是专用端口,如21为FTP端口。本例中用到的7号端口很特殊,它回显接收到的任何数据,常用于端口检测。下面就向本机的7号端口发送数据报: DGSock=Create Socketdgram //创建数据报式Socket对象 ulAddr=ws.inet—addr(″127.0.0.1″) //将本机IP地址转换为32位的ulong类型 buf=Blob(″These data is send through datagram~r ~n″)//要发送的数据 DGSock.sendto(buf,Len(buf),0,ulAddr,7) //向ulAddr主机的7号端发送数据报 buf=Blob(Space(Len(buf))) //清空buf缓冲区 DGSock.recv(buf,Len(buf),0) //接收数据报 MessageBox(′Data Received′,String(buf)) //显示接收到的数据 DGSock.closesocket()//关闭Socket Destroy DGSock 从上面的演示可以看出,发送到本机7号端口的数据报立即被反弹回来。
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18