文章一 https://blog.csdn.net/mijichui2153/article/details/80918285 中成功安装两个虚拟机,而且他们之间可以互ping。

文章二 https://blog.csdn.net/mijichui2153/article/details/80918813 中用两个xshell终端实现对init0、init1两个虚拟机的远程控制。

接下来对两个虚拟机之间再进行简易telnet、server/client等通讯测试。接下来进入正文:

第零步:前期配置

1、两个虚拟机init0和init1共享的VM配置如下:

2、init0的网卡配置(配置方法参见文章一)

3、init1的网卡配置(配置方法参见文章一)

其他的应该也没啥了,xshell和虚拟机的互联参见文章二。

第一步:telnet远程登录测试

1、开启两个xshell终端分别连接init0和init1,如下可知init0和init1的根目录是不同的。

2、在init1中输入 telnet 172.25.10.111 、然后输入登录名和登录密码后即成功登录到init0。

观察其跟目录,确实是init0的根目录。至此telnet远程登录测试结束。

期间可能遇到的问题:

问题一:telnet:connect to address IP地址: No route to host 这很大程度是因init0防火墙的原因,需要关闭。在init0中粗暴的直接执行“iptables -F"来关闭其防火墙。另外在此操作的时候可能还会遇到“permission  denied”或者“权限不够”这时需要修改iptables的权限。(iptables是linux下的防火墙组件服务,外在表现就是一个文件)。进入提示路径然后修改其权限,指令是“chmod -R 777  iptable”。

第二步:server/client测试

0、测试程序来自  http://www.cnblogs.com/xudong-bupt/archive/2013/12/29/3483059.html#commentform

服务端程序:

#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/shm.h>#define MYPORT  8887
#define QUEUE   20
#define BUFFER_SIZE 1024int main()
{///定义sockfdint server_sockfd = socket(AF_INET,SOCK_STREAM, 0);///定义sockaddr_instruct sockaddr_in server_sockaddr;server_sockaddr.sin_family = AF_INET;server_sockaddr.sin_port = htons(MYPORT);server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);///bind,成功返回0,出错返回-1if(bind(server_sockfd,(struct sockaddr *)&server_sockaddr,sizeof(server_sockaddr))==-1){perror("bind");exit(1);}///listen,成功返回0,出错返回-1if(listen(server_sockfd,QUEUE) == -1){perror("listen");exit(1);}///客户端套接字char buffer[BUFFER_SIZE];struct sockaddr_in client_addr;socklen_t length = sizeof(client_addr);///成功返回非负描述字,出错返回-1int conn = accept(server_sockfd, (struct sockaddr*)&client_addr, &length);if(conn<0){perror("connect");exit(1);}while(1){memset(buffer,0,sizeof(buffer));int len = recv(conn, buffer, sizeof(buffer),0);if(strcmp(buffer,"exit\n")==0)break;fputs(buffer, stdout);send(conn, buffer, len, 0);}close(conn);close(server_sockfd);return 0;
}

客户端程序:

#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/shm.h>#define MYPORT  8887
#define BUFFER_SIZE 1024int main()
{///定义sockfdint sock_cli = socket(AF_INET,SOCK_STREAM, 0);///定义sockaddr_instruct sockaddr_in servaddr;memset(&servaddr, 0, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port = htons(MYPORT);  ///服务器端口servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");  ///服务器ip///连接服务器,成功返回0,错误返回-1if (connect(sock_cli, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0){perror("connect");exit(1);}char sendbuf[BUFFER_SIZE];char recvbuf[BUFFER_SIZE];while (fgets(sendbuf, sizeof(sendbuf), stdin) != NULL){send(sock_cli, sendbuf, strlen(sendbuf),0); ///发送if(strcmp(sendbuf,"exit\n")==0)break;recv(sock_cli, recvbuf, sizeof(recvbuf),0); ///接收fputs(recvbuf, stdout);memset(sendbuf, 0, sizeof(sendbuf));memset(recvbuf, 0, sizeof(recvbuf));}close(sock_cli);return 0;
}

1、一台虚拟机的测试:

你可以用xshell连接一个虚拟机然后开两个xshell连接模拟server算和client端测试通讯过程,此时就按照以上程序不需任何改动即可。

2、init0中运行server程序,在init1中用telnet与之通信。

(1)在init0中切换到共享文件夹,对server.cpp编译生成server可执行程序:g++ server.cpp -o server

(2)在init0中运行该服务程序:./server   如下所示:

(3)在init1中使用telnet与其建立连接和通信 。输入 telnet 172.25.10.111 8887 指令

然后输入字符串“nihao I am init!”如下图所示。

点击回车后如下:

由上图可知道init0收到了init1发过来的字符串并打印出来,并且还将这个字符串原样的返回给init1一份,init1也打印一份。

注:172.25.10.111是init0的IP地址;8887是server的端口号在server程序中指定。其实由文章一我们知道IP地址直接换成init0应该也是可以的。测试如下:

注:telnet的使用时可能被对方防火墙所禁止,处理方法签署不够的话可自行百度。

3、init0中运行server程序,在init1中运行client程序相互通信。

(1)首先我们要对客户端程序的IP地址做修改,此处肯定是修改成172.25.10.111.之后编译生成可执行文件client。

(2)先在init0运行server程序;再在init1中运行client程序。如下:

输入字符串“nihao! I am init1!”,回车后如下:

至此,原计划测试的都已经测试成功了!!

VM两个虚拟机之间的通讯测试相关推荐

  1. Android Bundle类,通过bundle实现在两个activity之间的通讯

    根据google官方的文档(http://developer.android.com/reference/android/os/Bundle.html) Bundle类是一个key-value对,&q ...

  2. django两个服务器之间的通讯

    django两个服务器之间的通讯 ajax通讯 服务器127.0.0.1:8000的代码如下: /project/project/urls: from django.contrib import ad ...

  3. android activity关联,如何实现两个Activity 之间如何通讯

    <转> 今天主要学习了Activity 组件,在这里作一下总结 1,学习如何创建Activity 创建 Activity 要点: (1) 一个Activity就是一个类,并且这个类要继承A ...

  4. Android开发之实现两个手机之间的通讯

    欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51685656 Hello,大家好,今天又来写博客了,项目终于搞完了最近又有时间写写 ...

  5. Linux中的两个虚拟机之间的密钥验证

    1.两个账户:172.16.1.111 172.16.1.115 2.172.16.1.111先安装YUM软件,并首次连接172.16.1.115 3.172.16.1.111生成密钥对 4. 192 ...

  6. 两台虚拟机之间直接通过ssh进行文件传输

    在linux系统中可以用cp进行文件的拷贝.当我们通过SSH远程登录到服务器或其他机器上的时候,要如何拷贝文件呢?答案是用scp命令.这个命令用起来也很简单. 1,从服务器拷贝文件到本地,在本地终端输 ...

  7. 两个虚拟机之间互传文件

    [root@localhost tomcat]# scp -r root@192.168.3.29:/usr/java/tomcat/apache-tomcat-8.0.52.tar.gz ./ 例如 ...

  8. (一看就会)让VM虚拟机之间联网并能相互ping通

    VM多台虚拟机之间的网络问题 我以两台虚拟机为例.如果要三台四台五台都是一样的道理,不过ip的第四段不能冲突 有三种: 我只想让虚拟机之间能ping通就行,不需要访问公网 我只想让虚拟机能联网,不需要 ...

  9. 利用两台虚拟机搭建Nginx高可用集群、宕机测试、宕机恢复

    这里写目录标题 一.准备阶段: 二.安装阶段: 1.安装pcre及其依赖 2.安装ngnix 3.安装keepalived 三.配置阶段: 四.启动阶段: 1.集群测试 2. 宕机测试 一.准备阶段: ...

  10. C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示)

    C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示) 作者:一点一滴的Beer http://beer.cnblogs.com/ 在程序设计中,涉及数据存储和数据交换的时候 ...

最新文章

  1. 【Robot学院】一文读懂世界智能制造大趋势!
  2. 学知识的时候出去看看的意义
  3. Oracle入门(十四.10)之显式游标简介
  4. 【软考】[信息安全工程师]
  5. 计量经济学第六版计算机答案,伍德里奇计量经济学导论计算机习题第六章第13题c_6.13...
  6. sublime编辑器下载与安装过程 2020
  7. 分布式理论(3):Paxos Made Simple
  8. exchange邮箱服务器端追踪某用户发送的邮件(发送状态、时间、主题等等信息)
  9. Linux之telnet命令
  10. iOS工程开发笔记二
  11. Java代码块、构造方法(包含继承关系)的执行顺序
  12. c#读取mysql返回的值类型_C#中Mysql读取字段值
  13. 冯诺依曼计算机设备,科学网—计算机学习漫谈(10)——一台冯·诺依曼机器 - 陈钊的博文...
  14. openLooKeng视图详解
  15. window10 下载速度限制问题解决方案
  16. 苹果手机语音备忘录在哪_苹果手机的录音功能在哪?教你快速开启,想录音太方便了...
  17. 洛谷 P2186 小Z的栈函数
  18. iOS 的UIView 的hitTest的分析
  19. 职员信息管理系统php,员工信息管理系统(含附源代码).doc
  20. Redis应用问题解决(缓存穿透、击穿、雪崩、分布式锁)

热门文章

  1. 08.存储Cinder→5.场景学习→08.Backup Volume→2.实操
  2. Java 利用 split 方法切割字符串
  3. 用idea搭建SSM框架maven项目
  4. Idea集成svn插件
  5. 《Systems Performance》阅读笔记及收获
  6. 蛇形填数 ------- 模拟水题
  7. 多表连接的三种方式 HASH MERGE NESTED
  8. 细说业务逻辑(前篇)
  9. Rearchitect Your Web Applications for Microsoft ASP.NET 2.0
  10. 补充总结:现代控制理论