服务端:

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函数返回值分析相关推荐

  1. linux如何拿到文件的返回值,linux 下read函数返回值分析

    原文出处:http://blog.chinaunix.net/space.php?uid=20558494&do=blog&id=2803003 read函数是Linux下不带缓存的文 ...

  2. mysql linux 函数返回值_linux recv函数返回值分析

    函数原型: ssize_t recv(int sockfd, void *buf, size_t len, int flags); 该函数第一个参数制定接收端套接字描述符; 第二个参数指明一个缓冲区, ...

  3. go函数详解:函数定义、形参、返回值定义规范、函数内存分析、不支持重载、支持可变参数、基本数据类型和数组默认都是值传递的、支持自定义数据类型、函数返回值命名

    引入 [1]为什么要使用函数: 提高代码的复用型,减少代码的冗余,代码的维护性也提高了 [2]函数的定义: 为完成某一功能的程序指令(语句)的集合,称为函数. [3]基本语法 func 函数名(形参列 ...

  4. select()函数返回值及select与socket阻塞的关系及select函数的意义

    1.select()函数返回值 select的返回值与recv函数的返回值十分类似,都分>0,=0,<0三种情况. >0:有事件发生, FD_ISSET(socket, &f ...

  5. socket编程accept函数返回值的理解

    accept函数返回值成功时返回非负值,失败时返回-1 accept函数接受一个客户端请求后会返回一个新的SOCKFD值,当有不同的客户端同时有不同请求时,会返回不同的SOCKFD的值.这个不同的值和 ...

  6. C++11 右值引用与常量左值引用保存临时变量(函数返回值)的底层分析

    右值引用保存临时变量(函数返回值)的问题 :临时变量是右值 1.普通变量接收函数返回值: 2.右值引用变量接收函数返回值: 3.用const int& 和右值引用是一样的效果,只是const ...

  7. recv函数和send函数返回值错误处理

    本文中分析的都是非阻塞态的socket错误代码,因为阻塞态也不会出现EWOULDBLOCK错误. 1.recv函数: 返回值<0时并且(errno == EINTR || errno == EW ...

  8. C++ 笔记(02)— 程序结构(头文件说明、命名空间、函数返回值、函数参数、注释、语句结束符、cin/cout)

    先看以下代码 #include <iostream> #include <string> using namespace std;int main() // main() 是程 ...

  9. python函数的用法详解(作用、定义、调用、函数参数、函数返回值、函数说明文档、函数嵌套使用)

    1. 函数的作⽤ 函数就是将⼀段具有独⽴功能的代码块整合到⼀个整体并命名,在需要的位置调⽤这个名称即可完成对应的需求. 函数在开发过程中,可以更⾼效的实现代码重⽤. 2. 函数的使⽤步骤 2.1 定义 ...

最新文章

  1. Eclipse 中maven插件坏死解决办法
  2. 卸载iso linux系统文件夹,在Ubuntu系统中如何卸载光盘/DVD/ISO
  3. Vue学习笔记:Ref的使用
  4. scala命令行运行spark代码
  5. 如何找到一个前端事件对应的事件处理函数
  6. kafka服务器死机消息,当kafka集群其中一台宕机后,会怎么样?
  7. 面码份量Java_JAVA语言(28道练习题)
  8. 如何下载anaconda python3.7_如何安装Anaconda和Python
  9. 解决 php提交表单到当前页面,刷新会重复提交 的问题
  10. Liunx 常用命令
  11. 2021年PMP考试最新通关宝典
  12. 端口映射抖音去水印源码
  13. tplink连接服务器失败_tplink路由器网络已连接但是上不了网怎么办?
  14. python打印菱形_python打印菱形
  15. 服务器是什么?服务器的作用与用途
  16. python 使用QPixmap显示图片扭曲、错位问题的解决
  17. 7-5 厘米换算英尺英寸
  18. 人间炼狱,人性在哪儿---------------- 二十年穿铁衣取胆,母熊含泪杀子并自杀...
  19. STM32F103C8T6+ST7735TFT LCD彩屏驱动程序
  20. 数字视频压缩的可行性

热门文章

  1. 强烈推荐C#打开文件夹openfolder自定义类(不是browser也不是openfile哦~)自带的实在不好用
  2. 读书笔记——《再见,平庸时代》
  3. 定义并实现一个三角形类(Triangle),其三个边长(edge1, edge2, edge3)为其属性,包含判断其是否为三角形(isTriangle)、计算周长(calPerimeter)及计算面积
  4. “照骗”大揭秘丨摄影师我问你,童话…
  5. QSPI FlexSPI Input Timing
  6. linux 发送邮件 mutt,Linux发送邮件:mutt中级技巧
  7. mybatis-plus查询sql条件拼接deleted = 0
  8. [年中总结]写在毕业的第三年
  9. 网页报错:不合法或违反同源安全限制
  10. 自由职业者的社保缴纳问题