1.Linux头文件主要包含
  #include <sys/socket.h>
  #include <netinet/in.h>
  #include <netdb.h>
  #include <arpa/inet.h>
  
  而windows下则是包含
  #include <Winsock2.h>
  #include <WS2tcpip.h> //是为了调用inet_pton函数
  #pragma comment(lib,“Ws2_32.lib”)
  如果在CLion里写自己CMakeLists.txt,需要在里面添加库

1.1
windows 的visual studio建议使用inet_pton来替代inet_addr
使用inet_addr的写法如下:
addr_srv.sin_addr.s_addr = inet_addr(“127.0.0.1”); // linux标准写法
addr_srv.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1”); // win标准写法

使用inet_pton的方法则为:
#include <WS2tcpip.h>
inet_pton(AF_INET, serverip.c_str(), &addr_srv.sin_addr);

2.初始化
windows下需要用WSAStartup();linux下不需要
对应的退出清理用WSACleanup( );linux下不需要

3.关闭socket
windows下closesocket(…)
linux下close(…)

4.socket套接字类型
Linux中socket为整形,
 Windows中为一个SOCKET类型。
 因为linux中的socket与普通的fd一样,所以可以在TCP的socket中,发送与接收数据时,直接使用read和write。而windows只能使用recv和send。

5.获取错误码
windows下WSAGetLastError() ;
linux下设置errno变量 用geterror()取得错误码;

6.设置socket属性
Linux下为 fcntl (fd, F_SETFL, flag | O_NONBLOCK);
Windows下为 ioctlsocket (fd, FIONBIO, (unsigned long *) &flag);

7.毫秒级时间获取
windows下 GetTickCount()
linux下 gettimeofday()

8.WSA宏
windows下WSA相关的操作
linux下WSA相关的操作在Linux不必要,直接去掉即可

9.多线程
多线程: (win)process.h --〉(linux)pthread.h
_beginthread --> pthread_create
_endthread --> pthread_exit
————————————————
版权声明:本文为CSDN博主「Fengfgg」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Fengfgg/article/details/112229986

在此基础上增加 1.1 的内容

socket编程在windows和linux下的区别相关推荐

  1. java socket windows linux,socket在windows下和linux下的区别

    windows到Linux代码移植遇到的问题 1.一些常用函数的移植http://www.vckbase.com/document/viewdoc/?id=1586 2.网络------转载& ...

  2. linux设置send时间,[转]Socket 的send,recv在windows与linux下的超时设置

    从昨天到今天一真在搞这个网络断线检测的问题,一直没搞好,网上大多都说用ping 可以搞定,不过我就是搞不定,没办法之下想了个不是办法的办法,在 服务器上开了一个 UDP端口,监听数据,然后回发,不用T ...

  3. Windows、Linux下安装Maven图文教程

    文章目录 一.前言 二.Maven到底是什么? 三.Windows下安装 1.前提 2.下载 3.配置Maven环境变量 4.检查Maven版本 5.安装好以后的几点注意 6.IDEA中修改Maven ...

  4. python在windows和linux_python在windows和linux下获得本机本地ip地址方法小结

    本文实例总结了python在windows和linux下获得本机本地ip地址方法.分享给大家供大家参考.具体分析如下: python的socket包含了丰富的函数和方法可以获得本机的ip地址信息,so ...

  5. 性能测试入门(六)windows及Linux下做压力测试的注册表设置

    windows及Linux下做压力测试的注册表设置 from: http://www.cnblogs.com/tianzhiliang/articles/2400176.html TcpTimedWa ...

  6. Socket编程之简单介绍 - 蓝天下的雨 - 博客园

    Socket编程之简单介绍 - 蓝天下的雨 - 博客园 Socket编程之简单介绍 - 蓝天下的雨 - 博客园 Socket编程之简单介绍 2013-03-19 15:27 by 蓝天下的雨, 878 ...

  7. YOLOv4:目标检测(windows和Linux下Darknet 版本)实施

    YOLOv4:目标检测(windows和Linux下Darknet 版本)实施 YOLOv4 - Neural Networks for Object Detection (Windows and L ...

  8. windows增量到linux,Beyond Compare 3在windows和linux下实现提取增量包

    需求:要实现在windows或linux下的自动对比打得WAR包,进行增量发布(缺点就是只能增量部署增加的和修改的,对删除的不能进行减量部署) 具体实现:利用Beyond Compare 3来实现,功 ...

  9. Windows和Linux下通用的线程接口

    对于多线程开发,Linux下有pthread线程库,使用起来比较方便,而Windows没有,对于涉及到多线程的跨平台代码开发,会带来不便.这里参考网络上的一些文章,整理了在Windows和Linux下 ...

最新文章

  1. 软件开发和产品经理到底是怎么回事
  2. node 之 ... 扩展运算符报错
  3. .NET系统学习----Globalization Resources
  4. ASPNet_Compiler学习总结
  5. 6月第一周国内域名解析商:万网继续抢占DNSPod份额
  6. VS2010,Cannot find or open the PDB file
  7. Wi-Fi 6到底有什么特别?
  8. 移植性问题のCString类型转换,字符串操作和UNICODE、ANSI字符集
  9. 白话SpringCloud | 第三章:服务注册与发现-高可用配置(Eureka)-下
  10. Windows Phone 程序发布过程
  11. jQuery源码解析
  12. RuntimeError: The size of tensor a (22) must match the size of tensor b (32) at non-singleton dimens
  13. asp.net 随机选举数据库服务器节点,最简单的压力分发
  14. CF 1728 D. Letter Picking 区间dp 1800
  15. 阿里云对象存储OSS收费标准(很详细一看就懂)
  16. RabbitMQ入门教程(十四):RabbitMQ单机集群搭建
  17. MTK机器原始OTA更新方法
  18. 用计算机弹歌夜空中最亮的星,计算机弹《夜空中最亮的星》 网友:学会了去撩妹...
  19. 中国国内可用API合集
  20. 【unity插件】Rewired插件-unity3d实现主机、PC手柄震动Vibration

热门文章

  1. 线性规划与网络流24题 太空飞行计划问题 (最小割及输出方案)
  2. lyapunov函数 matlab,科学网-[转载]Matlab的Lyapunov、Sylvester和Riccati方程的Matlab求解-吴雄君的博文...
  3. phpstudy下载安装简明教程+软件下载(图文)
  4. 5G承载网里的FlexE,到底是什么?
  5. 实现页面刷新(全局刷新)
  6. MATLAB命令与函数集合
  7. Eclipse集成properties插件-unicode码转化成中文
  8. itoa或者_itoa_s,fopen 和 fopen_s等几种函数的用法
  9. 算法 C语言 压缩字符串
  10. HarmonyOS系统中内核实现烟雾检测的方法