在实验开始前, 我们要准备好两台ubuntu18.04虚拟机, 并在安装完成后将它们开启(主机内存要足够大, 本机内存16G, 在开启两台虚拟机后内存占用已达45%: 若内存较小, 则可将ubuntu虚拟机的内存调为1G或更小, 但会收到较差的使用体验).
注: 下图为两台ubuntu18.04虚拟机已安装好后的情况. 两台ubuntu虚拟机的内存都设为2G, 处理器都为双核(1C2T).
接着我们来看一下本题的处理模型.
下面我们来看一下socket通信程序(tcp).
//client.c 客户端
#include<stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include<unistd.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#define SERVPORT 3333
#define MAXDATASIZE 100
int main(int argc, char *argv[])
{
int sockfd, recvbytes;
char buf[MAXDATASIZE