#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(void)
{
int socket1, socket2;
struct sockaddr_in addr, client;
socket1 = socket(AF_INET, SOCK_STREAM, 0);
if (socket1 != -1)
{
printf("utworzono gniazdo.\n");
addr.sin_family = AF_INET;
addr.sin_port = 0;
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
memset(&(addr.sin_zero), "\0", 8);
bind(socket1, (struct sockaddr *)&addr, sizeof(struct sockaddr));
listen(socket1, 5);
socket2 = accept(socket1, (struct sockaddr *)&client, sizeof(struct sockaddr_in));
if (socket2 != -1)
{
printf("nawiazano polaczenie\n");
char buf[255];
recv(socket2, buf, 255, 0);
send(socket2, buf, sizeof(buf), 0);
printf(buf);
close(socket2);
} else printf("kupal\n");
close(socket1);
} else printf("Nie mozna utworzyc gnizda\n");
return 0;
}
kompiluje i odpalam. potem:
$ telnet 127.0.0.1 <port>
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Connection closed by foreign host.
a serwer wypisuje:
utworzono gniazdo.
kupa
no i pytanie, czemu nie moge nic wpisac przez clienta?
czemu serwer nie czeka na dane?