54 lines
1.2 KiB
C
54 lines
1.2 KiB
C
/*
|
|
Klient strumieniowy, internetowy z danymi wysoko priorytetowymi.
|
|
*/
|
|
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <netdb.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
#include <fcntl.h>
|
|
#include <stdlib.h>
|
|
#include <arpa/inet.h>
|
|
|
|
typedef struct sockaddr SockAddr;
|
|
typedef struct sockaddr_in SockAddr_in;
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
int gniazdo;
|
|
socklen_t i;
|
|
SockAddr_in adres;
|
|
|
|
if ((gniazdo = socket(AF_INET, SOCK_STREAM, 0)) < 0)
|
|
{
|
|
perror("Blad wywolania funkcji socket.\n");
|
|
return -1;
|
|
}
|
|
struct hostent *Adres;
|
|
|
|
i = sizeof(SockAddr_in);
|
|
adres.sin_family = AF_INET;
|
|
adres.sin_port = htons(4040);
|
|
// Adres = gethostbyname(argv[1]);
|
|
inet_pton(AF_INET, "127.0.0.1", &(adres.sin_addr.s_addr));
|
|
// adres.sin_addr.s_addr = *(long *)(Adres->h_addr);
|
|
if (connect(gniazdo, (SockAddr *)&adres, i) < 0)
|
|
{
|
|
perror("Blad funkcji connect.\n");
|
|
close(gniazdo);
|
|
return -1;
|
|
}
|
|
|
|
double dd = 21.21;
|
|
|
|
usleep(1);
|
|
write(gniazdo, &dd, sizeof(double));
|
|
|
|
usleep(100);
|
|
send(gniazdo, &dd, sizeof(double), MSG_OOB);
|
|
|
|
close(gniazdo);
|
|
return 0;
|
|
} |