编写一个随机控制100个计算机向一个网站发送10个数据包的c++程序适用于Mac
OS。
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define NUM_COMPUTERS 100
#define NUM_PACKETS 10
#define SERVER_IP "127.0.0.1"
#define SERVER_PORT 8080
int main() {
srand(time(nullptr));
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0) {
std::cerr << "Error creating socket.\n";
return 1;
}
sockaddr_in server_addr{};
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(SERVER_PORT);
if (inet_aton(SERVER_IP, &server_addr.sin_addr) == 0) {
std::cerr << "Invalid IP address.\n";
return 1;
}
for (int i = 0; i < NUM_COMPUTERS; ++i) {
for (int j = 0; j < NUM_PACKETS; ++j) {
uint8_t packet[1024];
int packet_len = rand() % 1024;
for (int k = 0; k < packet_len; ++k) {
packet[k] = rand() % 256;
}
sendto(sockfd, packet, packet_len, 0, (sockaddr*)&server_addr, sizeof(server_addr));
usleep(1000); // Wait 1 ms before sending next packet
}
}
close(sockfd);
return 0;
}
注意事项:
- 该程序需要在命令行中编译并运行。
- 在Mac OS中,使用g++编译器编译该程序的命令为:
g++ -o program program.cpp。 - 在运行该程序前,需要启动一个接收数据包的服务器,并将服务器IP和端口号设置为程序中的常量
SERVER_IP和SERVER_PORT
原文地址: https://www.cveoy.top/t/topic/cxFf 著作权归作者所有。请勿转载和采集!