socket编程在windows和linux下的区别
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下的区别相关推荐
- java socket windows linux,socket在windows下和linux下的区别
windows到Linux代码移植遇到的问题 1.一些常用函数的移植http://www.vckbase.com/document/viewdoc/?id=1586 2.网络------转载& ...
- linux设置send时间,[转]Socket 的send,recv在windows与linux下的超时设置
从昨天到今天一真在搞这个网络断线检测的问题,一直没搞好,网上大多都说用ping 可以搞定,不过我就是搞不定,没办法之下想了个不是办法的办法,在 服务器上开了一个 UDP端口,监听数据,然后回发,不用T ...
- Windows、Linux下安装Maven图文教程
文章目录 一.前言 二.Maven到底是什么? 三.Windows下安装 1.前提 2.下载 3.配置Maven环境变量 4.检查Maven版本 5.安装好以后的几点注意 6.IDEA中修改Maven ...
- python在windows和linux_python在windows和linux下获得本机本地ip地址方法小结
本文实例总结了python在windows和linux下获得本机本地ip地址方法.分享给大家供大家参考.具体分析如下: python的socket包含了丰富的函数和方法可以获得本机的ip地址信息,so ...
- 性能测试入门(六)windows及Linux下做压力测试的注册表设置
windows及Linux下做压力测试的注册表设置 from: http://www.cnblogs.com/tianzhiliang/articles/2400176.html TcpTimedWa ...
- Socket编程之简单介绍 - 蓝天下的雨 - 博客园
Socket编程之简单介绍 - 蓝天下的雨 - 博客园 Socket编程之简单介绍 - 蓝天下的雨 - 博客园 Socket编程之简单介绍 2013-03-19 15:27 by 蓝天下的雨, 878 ...
- YOLOv4:目标检测(windows和Linux下Darknet 版本)实施
YOLOv4:目标检测(windows和Linux下Darknet 版本)实施 YOLOv4 - Neural Networks for Object Detection (Windows and L ...
- windows增量到linux,Beyond Compare 3在windows和linux下实现提取增量包
需求:要实现在windows或linux下的自动对比打得WAR包,进行增量发布(缺点就是只能增量部署增加的和修改的,对删除的不能进行减量部署) 具体实现:利用Beyond Compare 3来实现,功 ...
- Windows和Linux下通用的线程接口
对于多线程开发,Linux下有pthread线程库,使用起来比较方便,而Windows没有,对于涉及到多线程的跨平台代码开发,会带来不便.这里参考网络上的一些文章,整理了在Windows和Linux下 ...
最新文章
- 软件开发和产品经理到底是怎么回事
- node 之 ... 扩展运算符报错
- .NET系统学习----Globalization Resources
- ASPNet_Compiler学习总结
- 6月第一周国内域名解析商:万网继续抢占DNSPod份额
- VS2010,Cannot find or open the PDB file
- Wi-Fi 6到底有什么特别?
- 移植性问题のCString类型转换,字符串操作和UNICODE、ANSI字符集
- 白话SpringCloud | 第三章:服务注册与发现-高可用配置(Eureka)-下
- Windows Phone 程序发布过程
- jQuery源码解析
- RuntimeError: The size of tensor a (22) must match the size of tensor b (32) at non-singleton dimens
- asp.net 随机选举数据库服务器节点,最简单的压力分发
- CF 1728 D. Letter Picking 区间dp 1800
- 阿里云对象存储OSS收费标准(很详细一看就懂)
- RabbitMQ入门教程(十四):RabbitMQ单机集群搭建
- MTK机器原始OTA更新方法
- 用计算机弹歌夜空中最亮的星,计算机弹《夜空中最亮的星》 网友:学会了去撩妹...
- 中国国内可用API合集
- 【unity插件】Rewired插件-unity3d实现主机、PC手柄震动Vibration
热门文章
- 线性规划与网络流24题 太空飞行计划问题 (最小割及输出方案)
- lyapunov函数 matlab,科学网-[转载]Matlab的Lyapunov、Sylvester和Riccati方程的Matlab求解-吴雄君的博文...
- phpstudy下载安装简明教程+软件下载(图文)
- 5G承载网里的FlexE,到底是什么?
- 实现页面刷新(全局刷新)
- MATLAB命令与函数集合
- Eclipse集成properties插件-unicode码转化成中文
- itoa或者_itoa_s,fopen 和 fopen_s等几种函数的用法
- 算法 C语言 压缩字符串
- HarmonyOS系统中内核实现烟雾检测的方法