/* UDP client in the internet domain */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
void
error (
const char* msg
) {
perror(msg);
exit(0);
}
int
main (
int argc,
char* argv[])
{
int sock;
int n;
unsigned int length;
struct sockaddr_in server;
struct sockaddr_in from;
struct hostent* hp;
char buffer[1024];
if (argc != 3) error("Usage: IP port\n");
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0) error("socket");
server.sin_family = AF_INET;
server.sin_port = htons(atoi(argv[2]));
inet_aton(argv[1], &server.sin_addr);
length = sizeof(struct sockaddr_in);
printf("Please enter the message: ");
bzero(buffer,256);
fgets(buffer,255,stdin);
n = sendto(sock,buffer, strlen(buffer),0,
(const struct sockaddr *)&server,length);
if (n < 0) error("Sendto");
n = recvfrom(sock,buffer,256,0,(struct sockaddr *)&from, &length);
if (n < 0) error("recvfrom");
write(1,"Got an ack: ",12);
write(1,buffer,n);
close(sock);
return 0;
}
No comments:
Post a Comment