socket_client.c

text/plain socket_client.c — 1 KB

File contents

#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>

#define SRV_ADDRESS "127.0.0.1"
#define SRV_PORT 7777

int main() {
  int s_tcp;             /* socket descriptor */
  struct sockaddr_in sa; /* socket address structure*/
  int sa_len = sizeof(struct sockaddr_in), n;
  char *msg = "Hello World!";

  sa.sin_family = AF_INET; /* select IPv4 */
  sa.sin_port = htons(SRV_PORT);

  if (inet_pton(sa.sin_family, SRV_ADDRESS, &sa.sin_addr.s_addr) <= 0) {
    perror("Address Conversion");
    exit(1);
  }

  if ((s_tcp = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
    perror("TCP Socket");
    exit(1);
  }

  if (connect(s_tcp, (struct sockaddr *)&sa, sa_len) < 0) {
    perror("Connect");
    exit(1);
  }

  if ((n = send(s_tcp, msg, strlen(msg), 0)) > 0) {
    printf("Message %s sent ( %i Bytes).\n", msg, n);
  }

  close(s_tcp);
}