Socket 编程 windows到Linux代码移植遇到的问题
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代码移植遇到的问题相关推荐
- java socket windows linux,socket在windows下和linux下的区别
windows到Linux代码移植遇到的问题 1.一些常用函数的移植http://www.vckbase.com/document/viewdoc/?id=1586 2.网络------转载& ...
- 将Linux代码移植到Windows的简单方法
将Linux代码移植到Windows的简单方法 一.前言 Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的.Windows平台根本无法直接利用这些源代码资源.如 ...
- tar在linux编译为exe,将Linux代码移植到Windows的简单方法 1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一.前言 Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的.Windows平台根本无法直接利用这些源代码资源.如果 ...
- 【socket】从计算机网络基础到socket编程——Windows Linux C语言 + Python实现(TCP+UDP)
一.部分基础知识 1.1 计算机网络的体系结构 1.11 互联网简介 1.12 计算机网络的分类 1.13 协议与网络的分层体系结构 ▶ 协议 ▶ 网络的分层体系结构 1.14 OSI 七层模型(重要 ...
- api有哪些 javasocket_Java Socket编程以及与Linux Socket API关系
Socket 编程(基于Linux) Socket独立于具体协议的网络编程接口,在ISO模型中,主要位于会话层和传输层之间:在通用的计算机网络五层模型中,主要位于应用层和传输层之间. Linux So ...
- 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 ...
- linux c socket编程详解,Linux c 网络socket编程
#include int main() { int sockfd,new_fd; struct sockaddr_in my_addr; struct sockaddr_in their_addr; ...
- windows clone linux代码时的warning: the following paths have collided (e.g. case-sensitive pathson)
按照以下指示运行即可将对应path修改为大小写敏感,即可修复问题. (cmd or powershell 管理员模式)fsutil file setCaseSensitiveInfo "Yo ...
- Linux下Socket编程
Linux下Socket编程 网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符.Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的S ...
最新文章
- 反射 字段_详解面试中常考的 Java 反射机制
- C和C++中的##和#
- Prism for WPF初探(构建简单的模块化开发框架)
- python所有函数用法_python函数用法总结
- 距离剩者为王,服饰企业还要跨过很多道坎
- 2015大学计算机基础,2015新生入学大学计算机基础复习资料
- 只进ResultSet 不支持请求的操作
- idea查询类_Spring Security入门(三): 基于自定义数据库查询的认证实战
- Hive系列(一)metastore的认证和授权
- 开课吧:Webpack的构建流程是什么?
- Spring Boot 集成 RabbitMQ 升级
- 利用ABBYY Screenshot Reader快速截取网页并识别文本
- Silverlight 4 or 5 安装步骤
- U产品快报 | UK8S支持K8S 1.18版本、URTC新版Webdemo上线等重要更新
- 关于商城商品表设计(一)
- 【OpenGL ES】EGL+FBO离屏渲染
- CentOS.7卸载与安装Nvidia Driver
- Java 创建带有套接字的简单代理服务器示例
- 《醒来的森林》带你走进神奇的鸟类世界
- 1ppi等于多少dpi_图片知多少?
热门文章
- python创建和控制的实体称为_Python语法基础
- DTD -- XML验证
- Ubuntu 12.04安装英汉词典
- python学习三 函数
- HDU1002 大数相加
- 前端session存储实例
- python模拟登录页面下载_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...
- java 系统音量案例_android 实现手机音量的控制 实例源码
- mysql问题定位_十、MySQL的SQL优化之定位SQL的问题 - 系统的撸一遍MySQL
- fetch用英语解释_初中英语重点知识点,初中三年必须掌握!