首先我获得了两份分别是server,client的socket代码。用的语言是c。
我首先尝试用vm下debian虚拟机与ubuntu虚拟机通信,以debian11作为服务器端,ubuntu作为客户端进行通信。
在两台虚拟机上下载搭建好c环境后,开始了第一轮的编译运行。
将代码初次输入编译后发现双方运行起来都没有反应,连接没有成功。
因为考虑到对debian系统的不熟悉,我考虑到是也许是防火墙端口号没有放行的原因,我尝试在Debian下先进行防火墙的配置,谁知道这个过程中一直磕磕绊绊,尝试了很多命令跟解决办法,到最后也没有结果。
debian下装了iptables配置防火墙时,输入开放端口指令都会出现unknown option或者是未找到该指令的错误,崩溃的是在这个过程中我的debian卡死了两次,真是很搞心态。
后来debian第二次卡死就放弃了用debian作为服务器端,把ubuntu完整克隆了一台,决定用ubuntu的克隆机作为服务器端继续尝试!我的vm下 debian真的太蛋疼了,输啥啥不行!
因为克隆下来的机子完全与原机相同,所以搭建c环境的步骤也省下了。甚至能在克隆机上上传git
第一步先把两边的代码准备好,
因为是克隆,所以我的克隆机上有客户端跟服务器端的代码。
第二步进行防火墙的配置,双方都放开实验需要的5005端口。
第三步开始运行双方的代码。
首先在服务器端先运行服务器端程序,让服务器开启监听模式。
输入后马上回显发送数据与服务器端回应的数据。
首先显示原机的ip号,表示连接成功,最后每次接受成功后发送ok。
最后的iret是recv函数的返回值,为0表示客户端已经发送完所有数据,并关闭了链接。
总体上运行成功。
-------------------------------------------------------------------------------------------------------
主要学习资源来源:
(19条消息) socket绑定的ip为INADDR_ANY 的意义_lyz_cs的博客-CSDN博客
还有书籍参考:linuxC函数库参考手册
对以上作者表示感谢。