• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言设置和取得socket状态的相关函数用法

C语言设置和取得socket状态的相关函数用法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c语言socket编程,c语言实现socket,c语言socket,c语言实现socket通信,c语言socket通信等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

C语言setsockopt()函数:设置socket状态
头文件:

#include <sys/types.h>  #include <sys/socket.h>
</div>

定义函数:

int setsockopt(int s, int level, int optname, const void * optval, ,socklen_toptlen);
</div>

函数说明:setsockopt()用来设置参数s 所指定的socket 状态. 参数level 代表欲设置的网络层, 一般设成SOL_SOCKET 以存取socket 层. 参数optname 代表欲设置的选项, 有下列几种数值:
   SO_DEBUG 打开或关闭排错模式
   SO_REUSEADDR 允许在bind ()过程中本地地址可重复使用
   SO_TYPE 返回socket 形态.
   SO_ERROR 返回socket 已发生的错误原因
   SO_DONTROUTE 送出的数据包不要利用路由设备来传输.
   SO_BROADCAST 使用广播方式传送
   SO_SNDBUF 设置送出的暂存区大小
   SO_RCVBUF 设置接收的暂存区大小
   SO_KEEPALIVE 定期确定连线是否已终止.
   SO_OOBINLINE 当接收到OOB 数据时会马上送至标准输入设备
   SO_LINGER 确保数据安全且可靠的传送出去.

参数 optval 代表欲设置的值, 参数optlen 则为optval 的长度.

返回值:成功则返回0, 若有错误则返回-1, 错误原因存于errno.

附加说明:
1、EBADF 参数s 并非合法的socket 处理代码
2、ENOTSOCK 参数s 为一文件描述词, 非socket
3、ENOPROTOOPT 参数optname 指定的选项不正确.
4、EFAULT 参数optval 指针指向无法存取的内存空间.

C语言getsockopt()函数:取得socket 状态
头文件:

#include <sys/types.h>  #include <sys/socket.h>
</div>

定义函数:

int getsockopt(int s, int level, int optname, void* optval, socklen_t* optlen);
</div>

函数说明:getsockopt()会将参数s 所指定的socket 状态返回. 参数optname 代表欲取得何种选项状态, 而参数optval 则指向欲保存结果的内存地址, 参数optlen 则为该空间的大小. 参数level、optname 请参考setsockopt().

返回值:成功则返回0, 若有错误则返回-1, 错误原因存于errno

错误代码:
1、EBADF 参数s 并非合法的socket 处理代码
2、ENOTSOCK 参数s 为一文件描述词, 非socket
3、ENOPROTOOPT 参数optname 指定的选项不正确
4、EFAULT 参数optval 指针指向无法存取的内存空间

范例

#include <sys/types.h>
#include <sys/socket.h>
main()
{
  int s;
  int optval;
  int optlen = sizeof(int);
  if((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  perror("socket");
  getsockopt(s, SOL_SOCKET, SO_TYPE, &optval, &optlen);
  printf("optval = %d\n", optval);
  close(s);
}
</div>

执行:

optval = 1 //SOCK_STREAM 的定义正是此值
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • socket多人聊天程序C语言版(二)
  • socket多人聊天程序C语言版(一)
  • 用C语言进行最基本的socket编程
  • C语言中等待socket连接和对socket定位的方法
  • C语言中socket相关网络编程函数小结
  • C语言设置和取得socket状态的相关函数用法
  • C语言实现Linux下的socket文件传输实例
  • C语言实现socket简单通信实例
  • C语言socket编程开发应用示例

相关文章

  • 2017-05-28八皇后问题的相关C++代码解答示例
  • 2017-05-28C++中inline函数详解
  • 2017-05-28全排列算法的非递归实现与递归实现的方法(C++)
  • 2017-05-28C语言中字符和字符串处理(ANSI字符和Unicode字符)
  • 2017-05-28Objective-C 消息传递机制详解
  • 2017-05-28C# 使用反射来实现对象的深度复制方法
  • 2017-05-28c++几种基本的插入排序(图文)
  • 2017-05-28C++中基类和派生类之间的转换实例教程
  • 2017-05-28C++实现单链表删除倒数第k个节点的方法
  • 2017-05-28C++中构造函数与析构函数的调用顺序详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • VC基于ADO技术访问数据库的方法
    • Qt 实现桌面雪花飘落代码
    • 浅谈在函数中返回动态的内存
    • 一个string类的简单实现案例
    • Cocos2d-x学习笔记之Hello World源码分析
    • C语言 二叉树的链式存储实例
    • C语言合并排序及实例代码
    • C语言 基本语法示例讲解
    • C语言中字符串常用函数strcat与strcpy的用法介绍
    • C++中实现矩阵的加法和乘法实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有