首页 > 系统相关 >将windows上socket的client程序修改到linux上运行

将windows上socket的client程序修改到linux上运行

时间:2023-12-24 14:33:06浏览次数:42  
标签:socket windows mySocket WIN32 程序修改 client ifdef cpp addr

将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

相关文章

  • windows通过 桥接Usb 电缆连接linux 主机并通信的方法
    在Windows上通过USB转串口线连接Linux主机并进行通信,可以参考以下步骤:首先,插入USB转串口线到电脑的USB接口,此时系统会自动识别设备并安装驱动。检查设备管理器的端口(COM和LPT)中是否出现相应的串口信息。启动USB/IP项目以启用常见的开发人员USB场景,例如访问智能卡读取器等。确保你的......
  • Windows下升级go版本过程详解
    安装首次安装需要在官网下载msi安装包,安装完后golang会自动设置环境变量。在命令行可以使用goversion查看版本信息。后续如果需要升级go版本,怎么做?一种通用的办法是在官网下载列表下载对应的msi安装包下载。1https://go.dev/dl/新版本会覆盖旧版本,如果只是想使用指定版......
  • 【C++】将 C++ 程序 以 Windows Service 服务部署
    服务主函数1)先进行安装your_program.exeinstall2)在进入电脑管理-服务,进行启动3)若要多启动方式,在下面主函数中,进行启动类别判断是服务形式启动还是控制台程序启动int__cdecl_tmain(intargc,TCHAR*argv[])服务代码作为程序入口代码,将自己程序的主函数代码,访入SvcInit函......
  • 检查Windows更新问题解决
    在任务栏搜索框输入cmd,点击右侧的“以管理员身份运行”,打开后输入:(建议复制粘贴,防止输入有误出现错误提示等请忽略*)SCconfigwuauservstart=auto回车(Enter按键)SCconfigbitsstart=auto回车(Enter按键)SCconfigcryptsvcstart=auto回车(Enter按键)SCconfigtrustedin......
  • 手机平板远程访问kvm虚拟机的windows
    title:手机平板远程访问kvm虚拟机的windowsbanner_img:https://cdn.studyinglover.com/pic/2023/12/5c4ffb4ee8500a9cdfa2406137e5e0a8.jpgdate:2023-12-2319:28:00tags:-踩坑手机平板远程访问kvm虚拟机的windows最近快期末周了,开始陆陆续续开始复习(预习)这学期的课,......
  • git安装(Windows)
    首先进入官网——https://git-scm.com/download选择Windows,根据自己电脑情况选择需要的版本(我是64位)点击安装 --------------------这里不知道为什么在官网没有下载下来,所以从网盘下载的:https://blog.csdn.net/weixin_50212044/article/details/131433207下好之后......
  • delphi 使用WIC(Windows 映像组件)加载图片
    使用WIC(Windows映像组件)加载图片TWICImage是MicrosoftWindows映像组件的封装。WIC映像是一个容器,允许加载多种映像格式。可以使用TWICImage实例来加载、存储和显示位图、JPEG、PNG、GIF、TIFF或使用WICAPI注册的任何其他文件格式。TWICImage依赖于DirectX运行时......
  • 阿里云安装opensuse,并开启xrdp,让windows远程连接
    一、安装gnome桌面和xrdpzypperupdatezypperinstallpatterns-gnome-gnome_basicxrdp 二、通过yast开启vnc保存退出三、windows下使用远程桌面连接输入账号密码,即可登录。 ......
  • 如何解决在 Linux 中 WPS 字体缺失问题(安装常用的 Windows 中文字体)
    所需文件的下载链接在末尾Symbol字体安装wsp-font-symbols即可Windows字体安装Win10Fonts即可常用字体文件内容包括仿宋GB2312、楷体GB2312、方正小标宋简安装方式首先下载你所需要的字体文件在字体文件所在的目录下右键点击在命令行中打开或OpeninTerminal......
  • Windows电脑多开器在软件测试中的优势
    Windows电脑多开器在软件测试中的优势文章在现代软件开发领域,软件测试是确保产品质量和稳定性的重要环节。而在软件测试过程中,Windows电脑多开器(也称为虚拟机或模拟器)发挥着重要作用。本文将探讨Windows电脑多开器在软件测试中的优势,以及它们如何提高测试效率和降低成本。环境......