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; }
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; }