当前位置:首页 > 百科

connect()

connect()用于建立与指定sock来自et的连接。

头文360百科件: #include <sys/socket.h>

函数原型: int connect(SOCKET s, const struct sockaddr 满兰呼克境饭简妈本* name, int namelen);

参数:

s:标识一个未连接socket

name:指为带友伯呢草向要连接套接字的sockaddr结构体的指针

namelen:sockaddr结构体的字节损袁地零钱长度

  • 中文名 connect()
  • 作用 建立与指定socket的连接
  • 支持协议 TCP
  • API类型 socket

注释:

  本函数用于创建与指定外部端口的连接。来自s参数指定一个未连接的数据报或流类套接口。如套接口未被捆绑,则系统赋给本地关联一个唯一的蛋座报值,且设置套接口为已捆绑。请注意若名字结构中的地址域为全际南妈从黑言父还改住组零的话,则connect()将返回宜委院阿感蒸呢非精该WSAEADDRNOTAVAIL错误。

  对于流类套接口(SOCK_STREAM类型),利用名字来与一个远程主机建立连接,一旦套接口调用成功返回,360百科它就能收发数据了。对于数据报类套接口(SOCK_DGRAM类型),则设置成一个缺省的目的地址,并用它来进行后续的send()与recv()调伤束额供治来方用。

函数说明

  connect()用来将参数sockfd 的socket 连至参数serv_addr 指定的网络地址. 结构sockaddr请着宗养十曲助参考bind(). 参数addrlen 为sockaddr 的结构长度.

  返回值:成功则返回0, 失败返回-1, 错误原因存于errno 中.

返回值:

  若无错误发生,则connect()返回0。否则的话,返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代。对非阻塞套接口而言,若返回值为SOCKET_ERROR则应用程序调用WSAGetLastError()。如果它指出错误代码为WSAEWOULDBLOCK,则您的应用程序可以:

  1.用select(),通过检查套接口是否可写,来确定连接请求是否完成。

  2.如果您的应用程序使用基于消息的WSAAsyncSelect()来表示对连接事件的兴趣,则当连接操作完成后,您会收到一个FD_效除委苗讨度CONNECT消均杨决死文乱言修药队们息。

错误代码:

  WSAENO来自TINITIALISED:在使用此API之前应首先成功地调用WSAStartup()。

  WSAENETDOWN:套接口实现检测到网络子系统失效。

  WSAEADDRINUSE:所指的地址已在使用中。

  W360百科SAEINTR:通过一个WSACancelBlockingCall()复鲁并亮非慢坚充制来取消一个(阻塞的)调用。

  WSAEINPROGRESS:一个阻塞的套接口调用正在运行中。

  WSAEADDRNOTAVAIL:在本地机器上找不到所指的地址。

  WSAENOTSUPPORT:所指族中地址无法与本套接口一起使用。

  WSAECONNREFUSED:连接尝试被强制拒绝。

  WSAEDESTADDREQ:需要目的地址。

逐段同革烟节  WSAEFAULT:namelen参数不正确。

  WSAEINVAL:套接口没有准备好与一地址捆绑。

  WSAEISCONN:套接口早已连接。

  WSAEMFIL元权影E:无多余文件描述字。

  WSAENETUNREACH:当前无法从本主机访问网络。

  WSAENOBUFS:无可用缓冲区。套接口未被连接。

  WSAENOTSOCK:描述字不是一个套接口。

  WSAETIMEOUT:超时时间到。

  WSAEWOULDBLOCK:套接口设置为非阻塞方式且连接不能立即建立。可用select()调用对套接口写,因为select()时会进行连接。

参见

表活某草  accept(), bind(), getsockname(), socket(), selec接婷居况仅毫爱久t(), WSAAsyncSelect().

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信
上一篇:浅缝骨螺
下一篇:电脑包

相关文章