老大.这个函数我都知道,但是我急需要的是一个例子。<br> FD_READ:<br> begin<br> SetLength(sRecv, 1024);<br> nRecv := recv(sEvent, sRecv[1], 1024, 0);<br> if nRecv = -1 then closesocket(sEvent)<br> else begin<br> SetLength(sRecv, nRecv);<br> form1.Memo1.Lines.Add(sRecv);<br> end;<br> FillChar(SockIn, SizeOf(SockIn), 0);<br> size := SizeOf(SockIn);<br> getpeername(Acceptsk,SockIn,size);<br> form1.Memo1.Lines.Add(inet_ntoa(SockIn.sin_addr)+':'+inttostr(SockIn.sin_port));<br> end;<br><br><br>套接口函数<br>Windows Sockets规范包含了以下Berkeley风格的套接口例程:<br>accept()* 响应联结请求,并且新建一个套接口。原来的套接口则返回监听状态。<br>bind() 把一个本地的名字和一个无名的套接口捆绑起来。<br>closesocket()* 把套接口从拥有对象参考表中取消。该函数只有在SO_LINGER被设置时才会阻塞。<br>connect()* 初始化到一个指定套接口上的连接。<br>getpeername() 得到连接在指定套接口上的对等通讯方的名字。<br>getsockname() 得到指定套接口上当前的名字。<br>getsockopt() 得到与指定套接口相关的属性选项。<br>htonl() 把32位的数字从主机字节顺序转换到网络字节顺序。<br>htons() 把16位的数字从主机字节顺序转换到网络字节顺序。<br>inet_addr() 把一个Internet标准的"."记号地址转换成Internet地址数值。<br>inet_ntoa() 把Internet地址数值转换成带"."的ASCII字符串。<br>ioctlsocket() 为套接口提供控制。<br>listen() 监听某一指定套接口上连接请求的到来。<br>ntohl() 把32位数字从网络字节顺序转换为主机字节顺序。<br>ntons() 把16位数字从网络字节顺序转换为主机字节顺序。<br>recv()* 从一个已连接的套接口接收数据。<br>recvfrom()* 从一个已连接的或未连接的套接口接收数据。<br>select()* 执行同步I/O多路复用。<br>send()* 从一已连接的套接口发送数据。<br>sendto()* 从已连接或未连接的套接口发送数据。<br>setsockopt() 设置与指定套接口相关的属性选项。<br>shutdown() 关闭一部分全双工的连接。<br>socket() 创建一个通讯端点并返回一个套接口。<br>*表示例程在应用于阻塞套接口时会阻塞。<br><br>数据库函数<br>gethostbyaddr()* 从网络地址得到对应的名字(有可能多个)和地址。<br>gethostbyname()* 从主机名得到对应的名字(有可能多个)和地址。<br>gethostname() 得到本地主机名。<br>getprotbyname()* 从协议名得到对应的协议名和数值。<br>getservbyname()* 从一个服务的名字得到对应的服务名以及端口号。<br>getservbyport()* 从一个端口号得到对应的服务名以及端口号。<br><br>针对Microsoft Windows的扩展函数<br>WSAAsyncGetHostByName()<br>WSAAsyncGetProtoByName()<br>WSAAsyncGetProtByNumber()<br>WSAAsyncGetServByName()<br>WSAAsyncGetServByPort()<br>WSAAsyncSelect() select()函数的异步版本。<br>WSACancelAsyncRequest() 取消一个未完成的WSAAsyncGetXByY()函数的实例。<br>WSACancelBlockingCall() 取消未完成的阻塞的API调用。<br>WSACleanup() 从底层的Windows Sockets DLL中撤销注册。<br>WSAGetLastError() 得到最近的一个Windows Sockets API调用错误的详细情况。<br>WSAIsBlocking() 确定底层的Windows Sockets DLL是否在该线程已经被一个调用阻塞。<br>WSASetBlockingHook() 为底层的Windows Sockets实现设置阻塞钩子。<br>WSASetLastError() 设置下一次WSAGetLastError()返回的错误信息。<br>WSAStartup() 初始化底层的Windows Sockets DLL。<br>WSAUnhookBlockingHook() 恢复原始的阻塞钩子。