1简述:
建立与一个端的连接。
#include <winsock.h>
int PASCAL FAR connect( SOCKET s, const struct sockaddr FAR* name,
int namelen);
s:标识一个未连接
套接口的描述字。
name:欲进行连接的端口名。
namelen:名字长度。
2注释:
本
函数用于创建与指定
外部端口的连接。s参数指定一个未连接的数据报或流类
套接口。如
套接口未被捆绑,则系统赋给本地关联一个唯一的值,且设置套接口为已捆绑。请注意若名字结构中的地址域为全零的话,则connect()将返回WSAEADDRNOTAVAIL错误。
对于流类
套接口(SOCK_STREAM类型),利用名字来与一个远程主机建立连接,一旦套接口调用成功返回,它就能收发数据了。对于数据报类
套接口(SOCK_DGRAM类型),则设置成一个缺省的目的地址,并用它来进行后续的send()与recv()调用。
3返回值:
若无错误发生,则connect()返回0。否则的话,返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应
错误代码。对阻塞
套接口而言,若返回值为SOCKET_ERROR则应用程序调用WSAGetLsatError()。如果它指出
错误代码为WSAEWOULDBLOCK,则您的应用程序可以:
2.如果您的应用程序使用基于消息的WSAAsynSelect()来表示对连接事件的兴趣,则当连接操作完成后,您会收到一个FD_CONNECT消息。
4错误代码:
WSAENOTINITIALISED:在使用此API之前应首先成功地调用WSAStartup()。
WSAENETDOWN:WINDOWS
套接口实现检测到网络子系统失效。
WSAEADDRINUSE:所指的地址已在使用中。
WSAEINTR:通过一个
WSACancelBlockingCall()来取消一个(阻塞的)调用。
WSAEINPROGRESS:一个阻塞的WINDOWS
套接口调用正在运行中。
WSAEADDRNOTAVAIL:在
本地机器上找不到所指的地址。
WSAENOTSUPPORT:所指族中地址无法与本
套接口一起使用。
WSAECONNREFUSED:连接尝试被强制拒绝。
WSAEDESTADDREQ:需要目的地址。
WSAEFAULT:namelen参数不正确。
WSAEINVAL:
套接口没有准备好与一地址捆绑。
WSAEISCONN:
套接口早已连接。
WSAEMFILE:无多余文件描述字。
WSAENETUNREACH:当前无法从本主机访问网络。
WSAENOBUFS:无可用缓冲区。
套接口未被连接。
WSAENOTSOCK:描述字不是一个
套接口。
WSAETIMEOUT:超时时间到。