SK/processes/sockets/c-inet.c

51 lines
1.1 KiB
C
Raw Permalink Normal View History

2023-02-11 11:00:14 +01:00
#include <sys/select.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/uio.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <arpa/inet.h>
typedef struct sockaddr SockAddr;
typedef struct sockaddr_in SockAddr_in;
void handle_error(char *txt)
{
perror(txt);
exit(-1);
}
int main()
{
SockAddr_in adres;
int gniazdo2;
socklen_t rozmiar = sizeof(SockAddr_in);
int sock;
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1)
handle_error("socket");
memset(&adres, 0, sizeof(SockAddr_in));
adres.sin_family = AF_INET;
adres.sin_port = htons(4040);
inet_pton(AF_INET, "127.0.0.1", &adres.sin_addr.s_addr);
if ((gniazdo2 = connect(sock, (SockAddr *)&adres, rozmiar)) == -1)
handle_error("connect");
ssize_t liczbaBajtow;
pid_t pid = getpid();
if ((liczbaBajtow = write(sock, &pid, sizeof(pid_t))) == -1)
handle_error("write");
printf("Wysłałem wiadomość: %d\n", pid);
return 0;
}