int main(void)
{
	int sfd, cfd, bytes, ret;
	char buf[16];

	buf[15] = 0;

	ret = sfd = create_unix_server_socket("/tmp/echosock",STREAM,0);

	if ( ret < 0 )
	{
		perror(0);
		exit(1);
	}

	for ( ;; )
	{
		ret = cfd = accept_unix_stream_socket(sfd,0);

		if ( ret < 0 )
		{
			perror(0);
			exit(1);
		}

		while ( 0 < ( bytes = read(cfd,buf,15) ) )
		{
			write(cfd,buf,bytes);
			write(1,buf,bytes);
		}

		ret = destroy_unix_socket(cfd);

		if ( ret < 0 )
		{
			perror(0);
			exit(1);
		}

	}

	ret = destroy_unix_socket(sfd);

	if ( ret < 0 )
	{
		perror(0);
		exit(1);
	}

	return 0;
}
int main(void)
{
    int sfd, bytes = 1, ret;
    const char* string = "abcdefghijklmnopqrstuvwxyz";
    char buf[16];

    memset(buf,0,sizeof(buf));

    ret = sfd = create_unix_stream_socket("/tmp/echosock",0);

    if ( ret < 0 )
    {
	perror(0);
	exit(1);
    }

    ret = write(sfd,string,26);

    if ( ret < 0 )
    {
	perror(0);
	exit(1);
    }

    ret = shutdown_unix_stream_socket(sfd,LIBSOCKET_WRITE); // Send EOF

    if ( ret < 0 )
    {
	perror(0);
	exit(1);
    }

    while ( bytes > 0 )
    {
	ret = bytes = read(sfd,buf,15);

	if ( ret < 0 )
	{
	    perror(0);
	    exit(1);
	}

	write(1,buf,bytes);
    }

    ret = destroy_unix_socket(sfd);

    if ( ret < 0 )
    {
	perror(0);
	exit(1);
    }

    return 0;
}
Example #3
0
int main(void)
{
    int sfd, bytes, ret;
    char buf[128];
    char from[128];

    memset(buf,0,128);
    memset(from,0,128);

    ret = sfd = create_unix_server_socket("/tmp/echosock",LIBSOCKET_DGRAM,0);

    if ( ret < 0 )
    {
	perror(0);
	exit(1);
    }

    while ( 0 < ( ret = bytes = recvfrom_unix_dgram_socket(sfd,buf,127,from,127,0) ) ) // read() is equivalent to recv_ussocket()
    {
	if ( ret < 0 )
	{
	    perror(0);
	    exit(1);
	}

	write(1,buf,bytes);
	ret = sendto_unix_dgram_socket(sfd,buf,bytes,from,0);

	if ( ret < 0 )
	{
	    perror(0);
	    exit(1);
	}
    }

    ret = destroy_unix_socket(sfd);

    if ( ret < 0 )
    {
	perror(0);
	exit(1);
    }

    return 0;
}