常见socket接口处理函数

2009-05-13 11:34:49来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

接口处理篇X5yLinux联盟
accept,X5yLinux联盟
bind,X5yLinux联盟
connect,X5yLinux联盟
endprotoent,X5yLinux联盟
endservent,X5yLinux联盟
getsockopt,X5yLinux联盟
htonl,X5yLinux联盟
htons,X5yLinux联盟
inet_addr,X5yLinux联盟
inet_aton,X5yLinux联盟
inet_ntoa,X5yLinux联盟
listen,X5yLinux联盟
ntohl,X5yLinux联盟
ntohs,X5yLinux联盟
recv,X5yLinux联盟
recvfrom,X5yLinux联盟
recvmsg,X5yLinux联盟
send,X5yLinux联盟
sendmsg,X5yLinux联盟
sendto,X5yLinux联盟
setprotoent,X5yLinux联盟
setservent,X5yLinux联盟
setsockopt,X5yLinux联盟
shutdown,X5yLinux联盟
socket,X5yLinux联盟
accept(接受socket连线) 相关函数 socket,bind,listen,connectX5yLinux联盟
表头文件 #includeX5yLinux联盟
#includeX5yLinux联盟
定义函数 int accept(int s,struct sockaddr * addr,int * addrlen);X5yLinux联盟
函数说明 accept
()用来接受参数s的socket连线。参数s的socket必需先经bind()、listen()函数处理过,当有连线进来时accept()会返回
一个新的socket处理代码,往后的数据传送与读取就是经由新的socket处理,而原来参数s的socket能继续使用accept()来接受新的连
线要求。连线成功时,参数addr所指的结构会被系统填入远程主机的地址数据,参数addrlen为scokaddr的结构长度。关于结构
sockaddr的定义请参考bind()。X5yLinux联盟
返回值 成功则返回新的socket处理代码,失败返回-1,错误原因存于errno中。X5yLinux联盟
错误代码 EBADF 参数s 非合法socket处理代码。X5yLinux联盟
EFAULT 参数addr指针指向无法存取的内存空间。X5yLinux联盟
ENOTSOCK 参数s为一文件描述词,非socket。X5yLinux联盟
EOPNOTSUPP 指定的socket并非SOCK_STREAM。X5yLinux联盟
EPERM 防火墙拒绝此连线。X5yLinux联盟
ENOBUFS 系统的缓冲内存不足。X5yLinux联盟
ENOMEM 核心内存不足。X5yLinux联盟
范例 参考listen()。X5yLinux联盟
  X5yLinux联盟
X5yLinux联盟
X5yLinux联盟
bind(对socket定位) 相关函数 socket,accept,connect,listenX5yLinux联盟
表头文件 #includeX5yLinux联盟
#includeX5yLinux联盟
定义函数 int bind(int sockfd,struct sockaddr * my_addr,int addrlen);X5yLinux联盟
函数说明 bind()用来设置给参数sockfd的socket一个名称。此名称由参数my_addr指向一sockaddr结构,对于不同的socket domain定义了一个通用的数据结构X5yLinux联盟
struct sockaddrX5yLinux联盟
{X5yLinux联盟
unsigned short int sa_family;X5yLinux联盟
char sa_data[14];X5yLinux联盟
};X5yLinux联盟
sa_family 为调用socket()时的domain参数,即AF_xxxx值。X5yLinux联盟
sa_data 最多使用14个字符长度。X5yLinux联盟
此sockaddr结构会因使用不同的socket domain而有不同结构定义,例如使用AF_INET domain,其socketaddr结构定义便为X5yLinux联盟
struct socketaddr_inX5yLinux联盟
{X5yLinux联盟
unsigned short int sin_family;X5yLinux联盟
uint16_t sin_port;X5yLinux联盟
struct in_addr sin_addr;X5yLinux联盟
unsigned char sin_zero[8];X5yLinux联盟
};X5yLinux联盟
struct in_addrX5yLinux联盟
{X5yLinux联盟
uint32_t s_addr;X5yLinux联盟

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:vi 使用方法

下一篇:setsockopt()用法 - (2)