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

int main()
{
	int listen_sock;
	int sock;
	struct sockaddr_in addr;

	addr.sin_family=AF_INET;
	addr.sin_addr.s_addr=0;
	addr.sin_port=htons((unsigned short)12765u);
	listen_sock=socket(PF_INET, SOCK_STREAM, 0);
	if(bind(listen_sock, (struct sockaddr *)&addr, sizeof(struct sockaddr_in))==-1)
	{
		perror("bind");
		return 1;
	}
	if(listen(listen_sock, 2)==-1)
	{
		perror("listen");
		return 1;
	}

	while(1)
	{
		sock=accept(listen_sock, 0 ,0);
		while(1)
		{
			char buf[1024];
			int len;
			len=read(sock, buf, sizeof(buf));
			if(len<=0)
				break;
			write(1, buf, (unsigned)len);
		}
		close(sock);
	}

	return 0;
}
