socket函数返回值分析
服务端:
1 WSAStartup(版本,本机的最高版本)
WSAStartup函数的第一个参数是加载WinSock库的版本,WSAStartup函数的第二个参数中设置使用的WinSock库的版本,当正确初始化时,WSAStartup会返回0。但我在WSAStartup函数的第一个参数中胡乱设置了一个版本号,WSAStartup仍然会返回0。
如果在WSAStartup函数第一个参数中设置的版本号不存在,那么会自动使用WinSock库中最低的版本1.1。
2socket(协议方案,数据流/快形式,附加协议)
socket 成功
INVALID_SOCKET 错误
socket返回的值是一个文件描述符,SOCKET类型本身也是定义为int的,既然是文件描述符,那么在系统中都当作是文件来对待的,0,1,2分别表示标准输入、标准输出、标准错误。所以其他打开的文件描述符都会大于2, 错误时就返回 -1. 这里INVALID_SOCKET 也被定义为 -1
3 bind(socket返回的socket,定义的SOCKADDR_IN 结构体,<-这个的大小)
0 成功
SOCKET_ERROR 错误(<0)可用WSAGETLASTERROR 函数取错误码
4 listen(socket返回的socket,队列长度)
0 成功
SOCKET_ERROR 错误(<0)可用WSAGETLASTERROR 函数取错误码
5 accept (socket返回的socket,指向的定义的SOCKADDR_IN 结构体指针,指针的大小)
0 成功
SOCKET_ERROR 错误(<0)可用WSAGETLASTERROR 函数取错误码
6 recv/recvfrom (socket返回的socket,要放在的BUF,BUF长度,接收方式)
0 返回收到的字节数目
=0断开连接
<0错误
7 send/sendto(socket返回的socket,要发的,发的长度,接收方式)
0 返回发的字节数目
=0断开连接
<0错误
客户端:
connect (socket返回的socket,定义的SOCKADDR_IN 结构体,<-这个的大小)
阻塞时:
0 成功
SOCKET_ERROR 错误(<0)可用WSAGETLASTERROR 函数取错误码
非阻塞时:不能立即返回值,连接 返回SOCKET_ERROR
WSAGETLASTERROR 函数返回WSAEWOULDBLOCK
————————————————
原文链接:https://blog.csdn.net/liuyueyue0921/article/details/47830517
socket函数返回值分析相关推荐
- linux如何拿到文件的返回值,linux 下read函数返回值分析
原文出处:http://blog.chinaunix.net/space.php?uid=20558494&do=blog&id=2803003 read函数是Linux下不带缓存的文 ...
- mysql linux 函数返回值_linux recv函数返回值分析
函数原型: ssize_t recv(int sockfd, void *buf, size_t len, int flags); 该函数第一个参数制定接收端套接字描述符; 第二个参数指明一个缓冲区, ...
- go函数详解:函数定义、形参、返回值定义规范、函数内存分析、不支持重载、支持可变参数、基本数据类型和数组默认都是值传递的、支持自定义数据类型、函数返回值命名
引入 [1]为什么要使用函数: 提高代码的复用型,减少代码的冗余,代码的维护性也提高了 [2]函数的定义: 为完成某一功能的程序指令(语句)的集合,称为函数. [3]基本语法 func 函数名(形参列 ...
- select()函数返回值及select与socket阻塞的关系及select函数的意义
1.select()函数返回值 select的返回值与recv函数的返回值十分类似,都分>0,=0,<0三种情况. >0:有事件发生, FD_ISSET(socket, &f ...
- socket编程accept函数返回值的理解
accept函数返回值成功时返回非负值,失败时返回-1 accept函数接受一个客户端请求后会返回一个新的SOCKFD值,当有不同的客户端同时有不同请求时,会返回不同的SOCKFD的值.这个不同的值和 ...
- C++11 右值引用与常量左值引用保存临时变量(函数返回值)的底层分析
右值引用保存临时变量(函数返回值)的问题 :临时变量是右值 1.普通变量接收函数返回值: 2.右值引用变量接收函数返回值: 3.用const int& 和右值引用是一样的效果,只是const ...
- recv函数和send函数返回值错误处理
本文中分析的都是非阻塞态的socket错误代码,因为阻塞态也不会出现EWOULDBLOCK错误. 1.recv函数: 返回值<0时并且(errno == EINTR || errno == EW ...
- C++ 笔记(02)— 程序结构(头文件说明、命名空间、函数返回值、函数参数、注释、语句结束符、cin/cout)
先看以下代码 #include <iostream> #include <string> using namespace std;int main() // main() 是程 ...
- python函数的用法详解(作用、定义、调用、函数参数、函数返回值、函数说明文档、函数嵌套使用)
1. 函数的作⽤ 函数就是将⼀段具有独⽴功能的代码块整合到⼀个整体并命名,在需要的位置调⽤这个名称即可完成对应的需求. 函数在开发过程中,可以更⾼效的实现代码重⽤. 2. 函数的使⽤步骤 2.1 定义 ...
最新文章
- Eclipse 中maven插件坏死解决办法
- 卸载iso linux系统文件夹,在Ubuntu系统中如何卸载光盘/DVD/ISO
- Vue学习笔记:Ref的使用
- scala命令行运行spark代码
- 如何找到一个前端事件对应的事件处理函数
- kafka服务器死机消息,当kafka集群其中一台宕机后,会怎么样?
- 面码份量Java_JAVA语言(28道练习题)
- 如何下载anaconda python3.7_如何安装Anaconda和Python
- 解决 php提交表单到当前页面,刷新会重复提交 的问题
- Liunx 常用命令
- 2021年PMP考试最新通关宝典
- 端口映射抖音去水印源码
- tplink连接服务器失败_tplink路由器网络已连接但是上不了网怎么办?
- python打印菱形_python打印菱形
- 服务器是什么?服务器的作用与用途
- python 使用QPixmap显示图片扭曲、错位问题的解决
- 7-5 厘米换算英尺英寸
- 人间炼狱,人性在哪儿---------------- 二十年穿铁衣取胆,母熊含泪杀子并自杀...
- STM32F103C8T6+ST7735TFT LCD彩屏驱动程序
- 数字视频压缩的可行性
热门文章
- 强烈推荐C#打开文件夹openfolder自定义类(不是browser也不是openfile哦~)自带的实在不好用
- 读书笔记——《再见,平庸时代》
- 定义并实现一个三角形类(Triangle),其三个边长(edge1, edge2, edge3)为其属性,包含判断其是否为三角形(isTriangle)、计算周长(calPerimeter)及计算面积
- “照骗”大揭秘丨摄影师我问你,童话…
- QSPI FlexSPI Input Timing
- linux 发送邮件 mutt,Linux发送邮件:mutt中级技巧
- mybatis-plus查询sql条件拼接deleted = 0
- [年中总结]写在毕业的第三年
- 网页报错:不合法或违反同源安全限制
- 自由职业者的社保缴纳问题