使用getsockopt函数判断TCP/IP异常

套接字机制提供两个套接字选项来控制套接字行为。一个接口用来控制选项,另一个接口允许查询一个选项的状态。

1 #include <sys/types.h>
2 #include <sys/socket.h>
3  
4 int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
5 int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
6 返回值:若成功则返回0,若出错则返回-1
参数说明:

sockfd:必须指向一个打开的套接字描述符。
level:标识了选项应用的协议。
optname:要设置或获取套接字选项的名字。
optval:指向函数设置或获取值得地址,即保存选项值的缓存区。
optlen:指定了optval指向的对象的大小。
在这里插入图片描述

示例:
int osal_socket_write(osal_socket_t sock, SH_CHAR *buf, SH_INT32 len)
{
	plat_socket_t *psock = (plat_socket_t*)sock;
	SH_INT32 ret,ret2;

	ret = send(psock->fd, (SH_CHAR*)buf, len, 0);
	if (ret == -1){
		getsockopt(psock->fd, SOL_SOCKET, SO_ERROR, &ret2, sizeof(ret2));
		OSAL_PRINTF("Fatal error:%d\n",ret2);
	}

	return ret;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值