虚拟机迁移过程中网络状况测试的测试程序
2014-04-30 21:21
435 查看
最近一直在弄项目的虚拟机网络的配置,现在主要的问题就是要测试在我们进行虚拟机迁移的过程中的网络情况。于是写了一个网络测试程序,因为基于TCP连接的网络,网络是不会丢包的,所以为了更好的显示网络情况,本测试程序是基于UDP的。
客户端程序
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define PORT 9877 /* Server port*/
#define MAXDATASIZE 100 /*........... */
#define SERVER_IP "127.0.0.1"
int
main(int argc, char *argv[])
{
int sockfd, sin_size;
sin_size = sizeof(struct sockaddr_in);
int *buf = (int *)malloc(sizeof(int));
struct sockaddr_in server_addr; /* server */
if ((sockfd=socket(AF_INET,SOCK_DGRAM,0))==-1) {
perror("socket");
exit(1);
}
bzero(&tserver_addr,sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT); /* short, NBO */
server_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
loop:
for(i = 1; i < 10000; i++)
{
*buf = i;
sendto(sockfd, buf, sizeof(int), 0, (struct sockaddr *)&server_addr, sin_size);
printf("client sending: %d\n", *buf);
sleep(1);
}
goto loop;
return 0;
}
服务器端程序
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#define MYPORT 3490 /*Listen port*/
void main()
{
int sockfd; /* Data port*/
struct sockaddr_in my_addr; /* myself addr */
struct sockaddr_in client_addr; /* others addr */
int sin_size;
sin_size = sizeof(struct sockaddr_in);
int *buf = (int *)malloc(sizeof(int));
int i;
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
perror("socket");
exit(1);
}
bzero(&my_addr, sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MYPORT); /* ...... */
my_addr.sin_addr.s_addr = htonl(INADDR_ANY); /* .....IP */
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(my_addr)) == -1) {
perror("bind");
exit(1);
}
while(1){
*buf = i;
z = recvfrom(sockfd, buf, sizeof(int), 0, (struct sockaddr *)&client_addr, &sin_size);
if(z < 0)
continue;
printf("server reciving: %d\n", i);
}
}
客户端程序
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define PORT 9877 /* Server port*/
#define MAXDATASIZE 100 /*........... */
#define SERVER_IP "127.0.0.1"
int
main(int argc, char *argv[])
{
int sockfd, sin_size;
sin_size = sizeof(struct sockaddr_in);
int *buf = (int *)malloc(sizeof(int));
struct sockaddr_in server_addr; /* server */
if ((sockfd=socket(AF_INET,SOCK_DGRAM,0))==-1) {
perror("socket");
exit(1);
}
bzero(&tserver_addr,sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT); /* short, NBO */
server_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
loop:
for(i = 1; i < 10000; i++)
{
*buf = i;
sendto(sockfd, buf, sizeof(int), 0, (struct sockaddr *)&server_addr, sin_size);
printf("client sending: %d\n", *buf);
sleep(1);
}
goto loop;
return 0;
}
服务器端程序
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#define MYPORT 3490 /*Listen port*/
void main()
{
int sockfd; /* Data port*/
struct sockaddr_in my_addr; /* myself addr */
struct sockaddr_in client_addr; /* others addr */
int sin_size;
sin_size = sizeof(struct sockaddr_in);
int *buf = (int *)malloc(sizeof(int));
int i;
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
perror("socket");
exit(1);
}
bzero(&my_addr, sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MYPORT); /* ...... */
my_addr.sin_addr.s_addr = htonl(INADDR_ANY); /* .....IP */
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(my_addr)) == -1) {
perror("bind");
exit(1);
}
while(1){
*buf = i;
z = recvfrom(sockfd, buf, sizeof(int), 0, (struct sockaddr *)&client_addr, &sin_size);
if(z < 0)
continue;
printf("server reciving: %d\n", i);
}
}
相关文章推荐
- 虚拟机迁移过程中网络状况测试的测试程序
- linux安装程序过程学习 VMware Player虚拟机内的linux连接网络
- 【node.js】安装express过程中测试报错:'express' 不是内部或外部命令,也不是可运行的程序或批处理文件。
- Linux 虚拟机迁移网络问题
- UDP网络延迟测试程序
- 记阿里云经典网络迁移至专有网络的过程
- 【转】虚拟机VirtualBox+Centos+NAT网络的配置过程
- UINIX 网络编程第一个获取服务器测试程序
- 网络游戏测试过程
- .net连接Sql时出现"已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: TCP 提供程序, error: 0 - 指定的网络名不再可用。) "
- 反虚拟机程序测试
- 网络编程:gethostbyname()测试程序
- 虚拟机NAT连接到网络过程
- 转载 一次网络程序Debug过程
- [网络技巧]一个网线头来测试网络程序
- NDK 下第一个boost asio 网络程序测试成功
- 可嵌入到Winform程序里网络端口测试小工具
- hyper-v虚拟机迁移网络设置
- 虚拟机的安装,网络设置,java安装过程
- c++重写卷积网络的前向计算过程,完美复现theano的测试结果