socket C/C++编程(3)Windows&Linux之socket兼容性编程
2017-08-11 17:26
615 查看
1. Windows socket依赖库”ws2_32.lib”编译
1.0. 创建工程
VS2012创建VC++“win32”空项目到共享目录\192.168.1.100\sharedcode
- 1.1. 加载windows 网络库”ws2_32.lib”
点击“项目”,右键“属性”,选中“链接器”,选中“输入”,附加依赖项目的最前面添加 ”ws2_32.lib”,保存
- 1.2. 添加新文件”test.cpp”
- 1.3. windows网络库”ws2_32.lib”编译成功
2. Windows socket编程
- 2.1. 不关闭socket(test.cpp)
- 2.2. 关闭socket(test.cpp)
3. Linux socket编程
- 3.1. 不关闭socket(test.cpp)
- 3.2. 关闭socket(test.cpp)
4. 另外
linux上有
查找依赖的头文件,查找windows API命令:
1.0. 创建工程
VS2012创建VC++“win32”空项目到共享目录\192.168.1.100\sharedcode
- 1.1. 加载windows 网络库”ws2_32.lib”
点击“项目”,右键“属性”,选中“链接器”,选中“输入”,附加依赖项目的最前面添加 ”ws2_32.lib”,保存
- 1.2. 添加新文件”test.cpp”
#include <windows.h> int main(int argc, char *argv[]){ // 初始化”ws2_32.lib” WSADATA ws; WSAStartup(MAKEWORD(2,2), &ws); return 0; }
- 1.3. windows网络库”ws2_32.lib”编译成功
2. Windows socket编程
- 2.1. 不关闭socket(test.cpp)
#include <windows.h> #include <stdio.h> int main(int argc, char *argv[]){ // 初始化”ws2_32.lib” WSADATA ws; WSAStartup(MAKEWORD(2,2), &ws); // 创建SOCKET(windows tcpip协议, 之tcp协议) for(int i=0; i<100; i++){ int sock = socket(AF_INET,SOCK_STREAM,0); if(sock == -1){ printf("create sock error!\n"); return -1; } else{ printf("create sock successfully, socket id: %d\n", sock); } } return 0; }
- 2.2. 关闭socket(test.cpp)
#include <windows.h> #include <stdio.h> int main(int argc, char *argv[]){ // 初始化”ws2_32.lib” WSADATA ws; WSAStartup(MAKEWORD(2,2), &ws); // 创建SOCKET(windows tcpip协议, 之tcp协议) for(int i=0; i<100; i++){ int sock = socket(AF_INET,SOCK_STREAM,0); if(sock == -1){ printf("create sock error!\n"); return -1; } else{ printf("create sock successfully, socket id: %d\n", sock); // 每次打印成功后都关闭socket closesocket(sock); } } return 0; }
3. Linux socket编程
- 3.1. 不关闭socket(test.cpp)
#include <windows.h> #include <stdio.h> int main(int argc, char *argv[]){ // 初始化”ws2_32.lib” WSADATA ws; WSAStartup(MAKEWORD(2,2), &ws); // 创建SOCKET(windows tcpip协议, 之tcp协议) for(int i=0; i<100; i++){ int sock = socket(AF_INET,SOCK_STREAM,0); if(sock == -1){ printf("create sock error!\n"); return -1; } else{ printf("create sock successfully, socket id: %d\n", sock); } } return 0; }
- 3.2. 关闭socket(test.cpp)
#ifdef WIN32 #include <windows.h> #else #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #endif #include <stdio.h> int main(int argc, char *argv[]){ #ifdef WIN32 // 初始化”ws2_32.lib” WSADATA ws; WSAStartup(MAKEWORD(2,2), &ws); #endif // 创建SOCKET(windows tcpip协议, 之tcp协议) for(int i=0; i<100; i++){ int sock = socket(AF_INET,SOCK_STREAM,0); if(sock == -1){ printf("create sock error!\n"); return -1; } else{ printf("create sock successfully, socket id: %d\n", sock); #ifdef WIN32 // 每次打印成功后都关闭socket closesocket(sock); #else close(sock); #endif } } return 0; }
4. 另外
linux上有
ulimit等参数的限制,值得进一步研究;
查找依赖的头文件,查找windows API命令:
msdn查找linux API 命令:
man
相关文章推荐
- CP Socket编程 C/C++实现 (Windows Platform SDK)
- Linux下基于C/C++的Socket编程实例
- linux网络编程常用函数详解与实例(socket-->bind-->listen-->accept)
- Linux下基于C/C++的Socket编程基础
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP socket编程 C/C++实现(windows platform SDK)
- Socket 编程 windows到Linux代码移植遇到的问题
- 网络编程入门(windows&linux)
- linux网络编程常用函数详解与实例(socket-->bind-->listen-->accept)
- Linux下基于C/C++的Socket编程基础
- windows c++程序员开始用linux编程(二)创建新进程
- LinuxSir.Org > 编程开发讨论区 —— LinuxSir.Org > 嵌入式Linux讨论区──实验田版 > 编译microwindows出错..
- C++和C在linux下编程和与在WINDOWS下有什么区别
- TCP的socket连接示例(linux&windows)
- 网络编程入门(windows&linux)
- linux网络编程常用函数详解与实例(socket-->bind-->listen-->accept)
- Linux下基于C/C++的Socket编程实例
- linux与windows之间的socket编程
- CP Socket编程 C/C++实现 (Windows Platform SDK)