我们有两台主机ucs1和ucs2通过一台交换机相连,且这两台主机与交换机相连的网卡都是eno6。我们将ucs1.eno6的IP地址设为10.0.0.10,将ucs2.eno6的IP地址设为10.0.0.11,如下图所示:
此时我们可以在它们之间实现通信,如下:
此外,我们在ucs2上有一个C程序用于接收UDP数据包,其代码如下:
// server.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#define CTRL_PORT 8082
#define MAXLINE 1024
int main() {
int sockfd;
char buffer[MAXLINE];
struct sockaddr_in servaddr, cliaddr;
// Creating socket file descriptor
if ( (sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) {
perror("socket creation failed");
exit(EXIT_FAILURE);
}
memset(&servaddr, 0, sizeof(servaddr));
memset(&cliaddr, 0, sizeof(cliaddr));
// Filling server information
servaddr.sin_family = AF_INET; // IPv4
// servaddr.sin_addr.s_addr = INADDR_ANY;
servaddr.sin_addr.s_addr = inet_addr("10.0.0.11");
servaddr.sin_port = htons(CTRL_PORT);
// Bind the socket with th