title: how to get the tcp header of a received packet in socket programming?
body: <p>I want to get the TCP header of each received TCP packet (destined for a specific program,namely, a port)
  it seems not possible to use recv() or recvfrom() to get the TCP header using regular socket.</p>
  
  <p>So, I want to use raw socket
  with raw socket, I can use recvfrom() to receive all IP packets destined to the host
  if the host receives a lot packets, 
  I need to check the port number of each packet so see whether it is the needed.
  then it could be very time and CPU comsuming?</p>
  
  <pre><code>while（）
  {
  recvfrom();
  check_port_number(); 
  }
  </code></pre>
  
  <p>are there any good ways to get the tcp header of a received tcp packet?
  I'm working with linux c, so THE solution should be linux c-based. thanks!</p>