Linux网络编程基础实验(5)

时间:2025-04-21

了解SOCKET编程,熟悉C/S模式服务器和客户端。

{

unsigned short int sa_family;

char sa_data[14];

};

sa_family 为调用socket()时的domain参数,即AF_xxxx值。

sa_data 最多使用14个字符长度。

此sockaddr结构会因使用不同的socket domain而有不同结构定义,例如使用

AF_INET domain,其socketaddr结构定义便为

struct socketaddr_in

{

unsigned short int sin_family;

uint16_t sin_port;

struct in_addr sin_addr;

unsigned char sin_zero[8];

};

struct in_addr

{

uint32_t s_addr;

};

sin_family 即为sa_family

sin_port 为使用的port编号

sin_addr.s_addr 为IP 地址

sin_zero 未使用。

参数 addrlen为sockaddr的结构长度。

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

错误代码 EBADF 参数sockfd 非合法socket处理代码。

EACCESS 权限不足

ENOTSOCK 参数sockfd为一文件描述词,非socket。

(3)listen(等待连接)

相关函数 socket,bind,accept,connect

表头文件 #include<sys/socket.h>

定义函数 int listen(int s,int backlog);

函数说明 listen()用来等待参数s 的socket连线。参数backlog指定同时能处理的最大连接要

求,如果连接数目达此上限则client端将收到ECONNREFUSED的错误。Listen()

并未开始接收连线,只是设置socket为listen模式,真正接收client端连线的是

accept()。通常listen()会在socket(),bind()之后调用,接着才调用accept()。

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

附加说明 listen()只适用SOCK_STREAM或SOCK_SEQPACKET的socket类型。如果socket

为AF_INET则参数backlog 最大值可设至128。

错误代码 EBADF 参数sockfd非合法socket处理代码

EACCESS 权限不足

Linux网络编程基础实验(5).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219