网络编程socket之connect函数
来源:互联网 发布:淘宝350模板 编辑:程序博客网 时间:2024/05/16 02:06
#include<sys/types.h>
返回:0──成功, -1──失败。
- 参数sockfd
- 指定数据发送的套接字,解决从哪里发送的问题。内核需要维护大量IO通道,所以用户必需通过这个参数告诉内核从哪个IO通道,此处就是从哪个socket接口中发送数据。sockfd是先前socket返回的值。
- 参数server_addr
- 指定数据发送的目的地,也就是服务器端的地址。这里服务器是针对connect说的,因为connect是主动连接的一方调用的,所以相应的要存在一个被连接的一方,被动连接的一方需要调用listen以接受connect的连接请求,如此被动连接的一方就是服务器了。
- 参数addrlen
- 指定server_addr结构体的长度。我们知道系统中存在大量的地址结构,但socket接口只是通过一个统一的结构来指定参数类型,所以需要指定一个长度,以使内核在进行参数复制的时候有个有个界限。
说明:
connect函数将使用参数sockfd中的套接字连接到参数serv_addr中指定的服务器。参数addrlen为serv_addr指向的内存空间大小。
如果参数sockfd的类型为SOCK_DGRAM,serv_addr参数为数据报发往的地址,且将只接收该地址的数据报。如果sockfd的类型为SOCK_STREAM或SOCK_SEQPACKET,调用该函数将连接serv_addr中的服务器地址。
错误信息:
EACCES, EPERM:用户试图在套接字广播标志没有设置的情况下连接广播地址或由于防火墙策略导致连接失败。
EADDRINUSE:本地地址处于使用状态。
EAFNOSUPPORT:参数serv_add中的地址非合法地址。
EAGAIN:没有足够空闲的本地端口。
EALREADY:套接字为非阻塞套接字,并且原来的连接请求还未完成。
EBADF:非法的文件描述符。
ECONNREFUSED:远程地址并没有处于监听状态。
EFAULT:指向套接字结构体的地址非法。
EINPROGRESS:套接字为非阻塞套接字,且连接请求没有立即完成。
EINTR:系统调用的执行由于捕获中断而中止。
EISCONN:已经连接到该套接字。
ENETUNREACH:网络不可到达。
ENOTSOCK:文件描述符不与套接字相关。
ETIMEDOUT:连接超时。
- C网络编程socket之connect函数
- 网络编程socket之connect函数
- 网络编程socket之connect函数
- 网络编程socket之connect函数
- 网络socket编程指南 3 socket bind connect 函数
- Beej网络socket编程指南 3 socket bind connect 函数
- Linux网络编程之connect函数分析
- Linux网络编程之connect函数分析
- Linux网络编程之connect函数分析
- linux网络编程之connect函数
- Linux网络编程之connect函数分析
- 网络编程Socket之TCP之connect详解
- 网络编程-connect函数
- Socket编程之Connect超时
- socket编程 -- socket、bind、accept、connect函数
- socket编程之三:socket网络编程中的常用函数
- 网络编程socket之bind函数
- 网络编程socket之listen函数
- 中国婆婆流泪自述:娶了个洋媳妇, 全家人生活巨变
- Android 使用URLConnection提交请求
- Java程序性能调优的基本知识和JDK调优
- 安卓 焦点获取和view放大问题(机顶盒应用)
- do...while(0)的妙用
- 网络编程socket之connect函数
- JDT的resolveBinding()问题的解决方案
- Android5.0系统WIFI状态如何向应用程序通知
- Android应用开发相关下载资源
- python输出htmltestrunner中文乱码如何解决
- 不止是产品经理(四)----开春产品笔记
- 总结分享十大iOS开发者最喜爱的库
- 使用PackageInstaller安装app流程学习小结
- Integer