add socket constructor using file descriptor