Socket 编程 windows到Linux代码移植遇到的问题

1、一些常用函数的移植
http://www.vckbase.com/document/viewdoc/?id=1586

2、网络 ------ 转载 & 修改(待整理)
socket相关程序从windows移植到linux下需要注意的

1)头文件
windows下winsock.h/winsock2.h
linux下sys/socket.h
错误处理:errno.h

2)初始化
windows下需要用WSAStartup
linux下不需要

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

4)类型
windows下SOCKET
linux下int
如我用到的一些宏:
#ifdef WIN32
typedef int socklen_t;
typedef int ssize_t;
#endif

#ifdef __LINUX__
typedef int SOCKET;
typedef unsigned char BYTE;
typedef unsigned long DWORD;
#define FALSE 0
#define SOCKET_ERROR (-1)
#endif

5)获取错误码
windows下getlasterror()/WSAGetLastError()
linux下errno变量

6)设置非阻塞
windows下ioctlsocket()
linux下fcntl() <fcntl.h>

7)send函数最后一个参数
windows下一般设置为0
linux下最好设置为MSG_NOSIGNAL,如果不设置,在发送出错后有可 能会导致程序退出。

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

3、多线程
多线程: (win)process.h --〉(linux)pthread.h
_beginthread --> pthread_create
_endthread --> pthread_exit

其他

#define WSAGetLastError()            errno
#define stricmp                      strcasecmp
#define strnicmp                     strncasecmp
#define closesocket                  close
#define memicmp                      strncasecmp

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代码移植到Windows的简单方法

    将Linux代码移植到Windows的简单方法 一.前言 Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的.Windows平台根本无法直接利用这些源代码资源.如 ...

  3. tar在linux编译为exe,将Linux代码移植到Windows的简单方法 1

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一.前言 Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的.Windows平台根本无法直接利用这些源代码资源.如果 ...

  4. 【socket】从计算机网络基础到socket编程——Windows Linux C语言 + Python实现(TCP+UDP)

    一.部分基础知识 1.1 计算机网络的体系结构 1.11 互联网简介 1.12 计算机网络的分类 1.13 协议与网络的分层体系结构 ▶ 协议 ▶ 网络的分层体系结构 1.14 OSI 七层模型(重要 ...

  5. api有哪些 javasocket_Java Socket编程以及与Linux Socket API关系

    Socket 编程(基于Linux) Socket独立于具体协议的网络编程接口,在ISO模型中,主要位于会话层和传输层之间:在通用的计算机网络五层模型中,主要位于应用层和传输层之间. Linux So ...

  6. linux网络编程IPv6socket,简单的IPv6 UDP/TCP socket编程 -- 两台Linux实现简单的ipv6通信...

    配置: 1.两台linux用网线直接相连 2.手动配置两台linux的ipv6地址为: ifconfig eth0 add 2001:da8:e000::1:1:1 ifconfig eth0 add ...

  7. linux c socket编程详解,Linux c 网络socket编程

    #include int main() { int sockfd,new_fd; struct sockaddr_in my_addr; struct sockaddr_in their_addr; ...

  8. windows clone linux代码时的warning: the following paths have collided (e.g. case-sensitive pathson)

    按照以下指示运行即可将对应path修改为大小写敏感,即可修复问题. (cmd or powershell 管理员模式)fsutil file setCaseSensitiveInfo "Yo ...

  9. Linux下Socket编程

    Linux下Socket编程    网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符.Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的S ...

最新文章

  1. 反射 字段_详解面试中常考的 Java 反射机制
  2. C和C++中的##和#
  3. Prism for WPF初探(构建简单的模块化开发框架)
  4. python所有函数用法_python函数用法总结
  5. 距离剩者为王,服饰企业还要跨过很多道坎
  6. 2015大学计算机基础,2015新生入学大学计算机基础复习资料
  7. 只进ResultSet 不支持请求的操作
  8. idea查询类_Spring Security入门(三): 基于自定义数据库查询的认证实战
  9. Hive系列(一)metastore的认证和授权
  10. 开课吧:Webpack的构建流程是什么?
  11. Spring Boot 集成 RabbitMQ 升级
  12. 利用ABBYY Screenshot Reader快速截取网页并识别文本
  13. Silverlight 4 or 5 安装步骤
  14. U产品快报 | UK8S支持K8S 1.18版本、URTC新版Webdemo上线等重要更新
  15. 关于商城商品表设计(一)
  16. 【OpenGL ES】EGL+FBO离屏渲染
  17. CentOS.7卸载与安装Nvidia Driver
  18. Java 创建带有套接字的简单代理服务器示例
  19. 《醒来的森林》带你走进神奇的鸟类世界
  20. 1ppi等于多少dpi_图片知多少?

热门文章

  1. python创建和控制的实体称为_Python语法基础
  2. DTD -- XML验证
  3. Ubuntu 12.04安装英汉词典
  4. python学习三 函数
  5. HDU1002 大数相加
  6. 前端session存储实例
  7. python模拟登录页面下载_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...
  8. java 系统音量案例_android 实现手机音量的控制 实例源码
  9. mysql问题定位_十、MySQL的SQL优化之定位SQL的问题 - 系统的撸一遍MySQL
  10. fetch用英语解释_初中英语重点知识点,初中三年必须掌握!