1
/* Multiple iteration sending test. */
5
#include <netinet/in.h>
6
#include <sys/socket.h>
12
int send_udp(char *bind_ip, char *bind_port, char *remote_ip, char *remote_port, char *message);
13
int send_tcp(char *bind_ip, char *bind_port, char *remote_ip, char *remote_port, char *message);
15
int main(int argc, char *argv[])
21
printf("Usage: %s bind_ip bind_port remote_ip remote_port proto message\n", argv[0]);
26
if (strcmp(argv[5], "udp") == 0)
28
send_ret = send_udp(argv[1], argv[2], argv[3], argv[4], argv[6]);
30
else if (strcmp(argv[5], "tcp") == 0)
32
send_ret = send_tcp(argv[1], argv[2], argv[3], argv[4], argv[6]);
36
printf("Unknown protocol.\n");
41
printf("Send message failed.\n");
48
int send_udp(char *bind_ip, char *bind_port, char *remote_ip, char *remote_port, char *message)
51
struct sockaddr_in remote, local;
53
if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
55
perror("Could not open socket: ");
59
remote.sin_family = AF_INET;
60
remote.sin_port = htons(atoi(remote_port));
61
inet_aton(remote_ip, &remote.sin_addr);
63
local.sin_family = AF_INET;
64
local.sin_port = htons(atoi(bind_port));
65
inet_aton(bind_ip, &local.sin_addr);
67
if (bind(sock, (struct sockaddr *) &local, sizeof(local)) < 0)
69
perror("Could not bind: ");
73
printf("Sending \"%s\"\n", message);
74
if (sendto(sock, message, strlen(message), 0, (struct sockaddr *) &remote, sizeof(remote)) <= 0)
76
perror("Send failed: ");
84
int send_tcp(char *bind_ip, char *bind_port, char *remote_ip, char *remote_port, char *message)
87
struct sockaddr_in remote, local;
89
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
91
perror("Could not open socket: ");
95
remote.sin_family = AF_INET;
96
remote.sin_port = htons(atoi(remote_port));
97
inet_aton(remote_ip, &remote.sin_addr);
99
local.sin_family = AF_INET;
100
local.sin_port = htons(atoi(bind_port));
101
inet_aton(bind_ip, &local.sin_addr);
103
if (bind(sock, (struct sockaddr *) &local, sizeof(local)) < 0)
105
perror("Could not bind: ");
108
if (connect(sock, (struct sockaddr *) &remote, sizeof(remote)) < 0)
110
perror("Could not connect: ");
114
printf("Sending \"%s\"\n", message);
115
if (send(sock, message, strlen(message), 0) <= 0)
117
perror("Send failed: ");