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

时间:2025-04-21

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

EOPNOTSUPP 指定的socket并未支援listen模式。

(4)connect(建立socket连接)

相关函数 socket,bind,listen

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

#include<sys/socket.h>

定义函数 int connect (int sockfd,struct sockaddr * serv_addr,int addrlen);

函数说明 connect()用来将参数sockfd 的socket 连至参数serv_addr 指定的网络地址。结构

sockaddr请参考bind()。参数addrlen为sockaddr的结构长度。

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

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

EFAULT 参数serv_addr指针指向无法存取的内存空间

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

EISCONN 参数sockfd的socket已是连线状态

ECONNREFUSED 连线要求被server端拒绝。

ETIMEDOUT 企图连线的操作超过限定时间仍未有响应。

ENETUNREACH 无法传送数据包至指定的主机。

EAFNOSUPPORT sockaddr结构的sa_family不正确。

EALREADY socket为不可阻断且先前的连线操作还未完成。

(5)accept(接受socket连线)

相关函数 socket,bind,listen,connect

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

#include<sys/socket.h>

定义函数 int accept(int s,struct sockaddr * addr,int * addrlen);

函数说明 accept()用来接受参数s的socket连线。参数s的socket必需先经bind()、listen()

函数处理过,当有连线进来时accept()会返回一个新的socket处理代码,往后的数

据传送与读取就是经由新的socket处理,而原来参数s的socket能继续使用accept()

来接受新的连线要求。连线成功时,参数addr所指的结构会被系统填入远程主机

的地址数据,参数addrlen为scokaddr的结构长度。关于结构sockaddr的定义请参

考bind()。

返回值 成功则返回新的socket处理代码,失败返回-1,错误原因存于errno中。

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

EFAULT 参数addr指针指向无法存取的内存空间。

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

EOPNOTSUPP 指定的socket并非SOCK_STREAM。

EPERM 防火墙拒绝此连线。

ENOBUFS 系统的缓冲内存不足。

ENOMEM 核心内存不足。

(6)send(经socket传送数据)

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

精彩图片

热门精选

大家正在看

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

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

支付方式:

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

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