jda/tools/ipscan_tool/test/updclient.c

250 lines
6.1 KiB
C
Raw Normal View History

2025-04-30 15:28:08 +08:00
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#define PORT 8004
#define SERVER_IP "255.255.255.255"
#define BUFFER_SIZE 1024
int main() {
int sockfd;
struct sockaddr_in server_addr;
char buffer[BUFFER_SIZE];
// <20><><EFBFBD><EFBFBD> UDP <20>׽<EFBFBD><D7BD><EFBFBD>
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0) {
perror("socket creation failed");
exit(EXIT_FAILURE);
}
// <20><><EFBFBD><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>Ϊ<EFBFBD>㲥ģʽ
int broadcast = 1;
if (setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(broadcast)) < 0) {
perror("setsockopt failed");
close(sockfd);
exit(EXIT_FAILURE);
}
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT);
server_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const char *message = "Hello from client!";
if (sendto(sockfd, message, strlen(message), 0,
(struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
perror("sendto failed");
close(sockfd);
exit(EXIT_FAILURE);
}
printf("Message sent to %s:%d\n", SERVER_IP, PORT);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
ssize_t bytes_received = recvfrom(sockfd, buffer, BUFFER_SIZE, 0,
NULL, NULL);
if (bytes_received < 0) {
perror("recvfrom failed");
} else {
printf("Received %ld bytes from server\n", bytes_received);
buffer[bytes_received] = '\0';
printf("Received response: %s\n", buffer);
}
close(sockfd);
return 0;
}
// #include <stdio.h>
// #include <stdlib.h>
// #include <string.h>
// #include <unistd.h>
// #include <sys/socket.h>
// #include <sys/types.h>
// #include <netinet/in.h>
// #include <arpa/inet.h>
// int main() {
// int sock = -1;
// if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
// perror("socket error");
// return -1;
// }
// const int opt = 1;
// int nb = 0;
// nb = setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *)&opt, sizeof(opt));
// if (nb == -1) {
// perror("set socket error...");
// return -1;
// }
// struct sockaddr_in addrto;
// memset(&addrto, 0, sizeof(struct sockaddr_in));
// addrto.sin_family = AF_INET;
// addrto.sin_addr.s_addr = htonl(INADDR_BROADCAST);
// addrto.sin_port = htons(8004);
// int nlen = sizeof(addrto);
// while (1) {
// sleep(1);
// char smsg[] = "abcdef";
// int ret = sendto(sock, smsg, strlen(smsg), 0, (struct sockaddr *)&addrto, nlen);
// if (ret < 0) {
// perror("send error....");
// } else {
// printf("ok ");
// }
// }
// return 0;
// }
/*
* main.c
*
* Created on: Sep 26, 2022
* Author: root
*/
// #include <stdio.h>
// #include <string.h>
// #include <unistd.h>
// #include <sys/socket.h>
// #include <sys/types.h>
// #include <arpa/inet.h>
// #define BOARDCAST_IP "255.255.255.255"
// #define BOARDCAST_PORT 10130
// int broadcast_send(void)
// {
// int fd;
// int ret;
// int on;
// struct sockaddr_in addr;
// const char* message = "This is boardcast message !";
// fd = socket(AF_INET, SOCK_DGRAM, 0);
// if(fd < 0)
// {
// fprintf(stderr, " create socket failed ! \n");
// goto __exit;
// }
// on = 1;
// ret = setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on));
// if(ret < 0)
// {
// fprintf(stderr, " setsockopt failed ! \n");
// goto __exit;
// }
// memset(&addr, 0, sizeof(addr));
// addr.sin_family = AF_INET;
// addr.sin_port = htons(BOARDCAST_PORT);
// addr.sin_addr.s_addr = inet_addr(BOARDCAST_IP);
// ret = sendto(fd, message, strlen(message), 0, (struct sockaddr *)&addr, sizeof(addr));
// if(fd < 0)
// {
// fprintf(stderr, " boardcast failed ! \n");
// goto __exit;
// }
// printf(" send ok ! \n");
// __exit:
// close(fd);
// return 0;
// }
// int broadcast_recv(void)
// {
// int fd;
// int ret;
// int on;
// struct sockaddr_in addr, addr_from;
// char message[512];
// socklen_t len;
// fd = socket(AF_INET, SOCK_DGRAM, 0);
// if(fd < 0)
// {
// fprintf(stderr, " create socket failed ! \n");
// goto __exit;
// }
// on = 1;
// ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
// if(ret < 0)
// {
// fprintf(stderr, " setsockopt failed ! \n");
// goto __exit;
// }
// memset(&addr, 0, sizeof(addr));
// addr.sin_family = AF_INET;
// addr.sin_port = htons(BOARDCAST_PORT);
// addr.sin_addr.s_addr = htonl(INADDR_ANY);
// ret = bind(fd, (struct sockaddr *)&addr, sizeof(addr));
// if(ret < 0)
// {
// fprintf(stderr, " bind failed ! \n");
// goto __exit;
// }
// memset(message, 0X00, sizeof(message));
// len = sizeof(addr_from);
// ret = recvfrom(fd, message, sizeof(message), 0, (struct sockaddr *)&addr_from, &len);
// if(ret < 0)
// {
// fprintf(stderr, " recv failed ! \n");
// goto __exit;
// }
// printf(" recv: [%s] ok ! \n", message);
// __exit:
// close(fd);
// return 0;
// }
// int main(int argc, const char* argv[])
// {
// if(argc == 2)
// {
// if(strcmp(argv[1], "recv") == 0)
// {
// broadcast_recv();
// }
// if(strcmp(argv[1], "send") == 0)
// {
// broadcast_send();
// }
// }else
// {
// printf("\r\n");
// printf("########################################### \r\n");
// printf("Usage: %s [ recv | send ] \r\n", argv[0]);
// printf("e.g. : %s recv\r\n", argv[0]);
// printf("e.g. : %s send\r\n", argv[0]);
// printf("########################################### \r\n");
// }
// return 0;
// }