title: Socket return the same value for every new process
body: <p>I have a program calling <code>listenfd=socket(AF_INET, SOCK_STREAM, 0)</code> which return a file descriptor. Then I tried to open the same program in different terminals, so that they can interact with each on <code>127.0.0.1</code> but different port. </p>
  
  <p>However, when I open 4 terminals at the same time and check the <code>listenfd</code>, they all return 1. So only one out of 4 terminals can run properly and the other will return error on <code>Address already in use</code> when I tried to bind the listenfd to 127.0.0.1 with unique port number. </p>
  
  <p>How can I make <code>socket</code> to return different file descriptor on different processes? </p>
  
  <p>Thanks</p>