对pbsocket认识

原创 2007年09月13日 22:04:00
global variables
WinSock   ws
event:open
ws = create WinSock    //提供常数和函数winsock_error
event:close
destroy ws

sServer = create SocketStream         //数据流传输模式:自动创建套接字
 sServer.bind(ulAddr,iPort)
sServer.listen(5)

tmpSocketNum = sServer.Accept(ulClientAddr, iClientPort) 自动创建一个套接字节

nsServer = create Socket           //这就用socket就行
nsServer.initsocket(SocketNum)     //初始化accept建立的socket

nsServer.CloseSocket()   这句是错误的,因为destroy时就自动调用了它
destroy nsServer
sServer.CloseSocket()    这句是错误的,因为destroy时就自动调用了它
destroy sServer

integer iEvent, iRet
iEvent = ws.FD_READ + ws.FD_WRITE + ws.FD_CLOSE + ws.FD_OOB+FD_ACCEPT+FD_CONNECT
sServer.WSAAsyncSelect(handle(this), 1024, iEvent) //事件邦定

ws.winsock_error
有用的函数:
ws.gethostname() 获得当前计算机名称
ws.gethostbyname() 根据名称返回其它信息
ws.GetHostByAddr()
h_name h_aliases[]
h_addrtype
h_length
h_addr-list[]

iEvent = ws.WSAGetSelectEvent(lparam)   判断是哪一个事件
iRet = ws.WSAGetSelectError(lparam)    
iErr = ws.WSAGetLastError()

sClient = create socketstream
sClient.WsConnect(iHostent.h_addr_list[1], iPort)
不用指定自身的端口,会自动使用一个端口的并告知服务器
sClient.Recv
sClient.send
destroy sClient

recv 只要产生fd_read事件就可以用recv来接收数据,注意用循坏来读取所有数据
send 注意可以直接使用send 或通过fd_write事件来发送数据若想通事件来发送
数据必须在准备好数据时调用wsaasyncselect这样马上会触发fd_write事件
fd_write只有在绶冲区中有空位时只产生,刚建立连接时会产生一次
wsaasyncselect只有最后一次的有用,先前的无效
 

相关文章推荐

关于winsock中网络编程事件模型和窗口消息模型中FD_WRITE的理解与数据的发送需要注意的关键点

Winsock异步模式I/O模型WSAEventSelect的使用及FD_WRITE事件的触发机制 http://oliver258.blog.51cto.com/750330/423813 ...

FD_READ FD_WRITE触发时机

FD_WRITE触发条件: ■ 使用connect或WSAConnect,一个套接字首次建立了连接。 ■ 使用accept或WSAAccept,套接字被接受以后。 ■ 若send、WSASend、se...
  • whatday
  • whatday
  • 2015年06月30日 10:51
  • 1459

用winsock.pbl开发UDP通信略解------PowerBuilder

一、需要准备的外部文件: 1、winsock.pbl 在开发环境中使用的库文件 2、PSLIB21.DLL 对应winsock和pb环境版本的动态库文件 二、定义全局变量 winsock ...

一个简单木马程序的编写

  一个简单木马例子    写文章一般都赋源代码.除关键部分外向来不爱打太多说明性文字,因为觉得这样 才比较实际,关于那些函数用法和功能大可以去翻书,哪里讲的比谁都详细. 这里给了一个用异步SOCKE...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

用winsock.pbl开发UDP通信略解------PowerBuilder

一、需要准备的外部文件: 1、winsock.pbl 在开发环境中使用的库文件 2、PSLIB21.DLL 对应winsock和pb环境版本的动态库文件 二、定义全局变量 winsock ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Websocket链接winsock2编写的服务…

用WebSocket官方echo测试程序链接自己编的本地服务器程序成功。 不过具体协议以及通讯形式有待解析。 本地服务器开启端口、成功侦听到客户端后,会开启两个线程,一个线程不断地接受客户端传来的信...

PBSOCKET示例

  • 2013年09月17日 01:06
  • 1.83MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对pbsocket认识
举报原因:
原因补充:

(最多只允许输入30个字)