66 lines
1.8 KiB
C
66 lines
1.8 KiB
C
#include <stdio.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
|
|
//~ domain = AF_UNIX, AF_INET, AF_INET6, AF_IPX
|
|
//~ type = SOCK_STREAM, SOCK_DGRAM, SOCK_RAW
|
|
//~ int socket(int domain, int type, int protocol);
|
|
|
|
//~ struct sockaddr {
|
|
//~ unsigned short sa_family; // Семейство адресов, AF_xxx
|
|
//~ char sa_data[14]; // 14 байтов для хранения адреса
|
|
//~ };
|
|
//~ struct sockaddr_in {
|
|
//~ short int sin_family; // Семейство адресов
|
|
//~ unsigned short int sin_port; // Номер порта
|
|
//~ struct in_addr sin_addr; // IP-адрес
|
|
//~ unsigned char sin_zero[8]; // "Дополнение" до размера структуры sockaddr
|
|
//~ };
|
|
//~ struct in_addr {
|
|
//~ unsigned long s_addr;
|
|
//~ };
|
|
//~ htons, htonl, ntohs, ntohl
|
|
//~ int bind(int sockfd, struct sockaddr *addr, int addrlen);
|
|
|
|
//~ int listen(int sockfd, int backlog);
|
|
//~ int accept(int sockfd, void *addr, int *addrlen);
|
|
|
|
// клиент
|
|
//~ int connect(int sockfd, struct sockaddr *serv_addr, int addrlen);
|
|
|
|
//~ int send(int sockfd, const void *msg, int len, int flags);
|
|
|
|
// отправка буфера целиком
|
|
//~ int sendall(int s, char *buf, int len, int flags)
|
|
//~ {
|
|
//~ int total = 0;
|
|
//~ int n;
|
|
//~
|
|
//~ while(total < len)
|
|
//~ {
|
|
//~ n = send(s, buf+total, len-total, flags);
|
|
//~ if(n == -1) { break; }
|
|
//~ total += n;
|
|
//~ }
|
|
//~
|
|
//~ return (n==-1 ? -1 : total);
|
|
//~ }
|
|
|
|
//~ int recv(int sockfd, void *buf, int len, int flags);
|
|
|
|
// закрытие соединения
|
|
//~ int close(int fd);
|
|
|
|
// запрет передачи 0 - чтения, 1 - записи, 2 - и того, и др.
|
|
//~ int shutdown(int sockfd, int how);
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
struct a {
|
|
char aaa[256];
|
|
};
|
|
|
|
printf("%lu\n", sizeof(struct a));
|
|
return 0;
|
|
}
|