将windows上客户端程序修改到linux上运行
记录一下修改哪些地方
编译命令
文件夹的内容:包含了client.cpp mySocket.cpp mySocket.h until.h
链接在一起
g++ -c client.cpp mySocket.cpp until.h -std=c++11 -pthread
使用 g++ 编译器将 client.cpp、mySocket.cpp 和 until.h 编译为目标文件:
g++ -c client.cpp mySocket.cpp until.h
这将生成三个目标文件:client.o、mySocket.o 和 until.o。
使用 g++ 链接器将三个目标文件链接为一个可执行文件:
g++ client.o mySocket.o -o client
这将生成一个名为 client 的可执行文件。
修改内容
1.修改头文件处
// 修改win和linux不同的h文件
#ifdef _WIN32
#include <winsock2.h>
#include <Windows.h>
#else
#include <unistd.h>
#include <arpa/inet.h>
#include <string.h>
#define SOCKET int
#define INVALID_SOCKET (SOCKET)(~0)
#define SOCKET_ERROR (-1)
#endif
2.修改ip地址
第一处
#ifdef _WIN32
char ipaddr[] = "127.0.0.1";
#else
char ipaddr[] ="192.168.18.1";//修改成为linux虚拟机对应的主机ip地址
#endif
第二处
//修改linux版本服务器地址
#ifdef _WIN32
_sin.sin_addr.S_un.S_addr = inet_addr(ipaddr);
#else
_sin.sin_addr.S_addr = inet_addr(ipaddr);
#endif
3.修改WORD
第一处
#ifdef _WIN32
//在windows下调用资源库
WORD ver = MAKEWORD(2, 2);
WSADATA dat;
WSAStartup(ver, &dat);
#endif
第二处
#ifdef _WIN32
WSACleanup();
#endif
第三处
#ifdef _WIN32
closesocket(_sock);
// 清除Windows socket环境
WSACleanup();
#else
close(_sock);
#endif
4.修改recv
int recvLen = (int)recv(_cSock, recvBuff, sizeof(DataHeader), 0);
在此处添加int
标签:socket,windows,mySocket,WIN32,程序修改,client,ifdef,cpp,addr From: https://www.cnblogs.com/AndreaDO/p/17919987.html