title: Allowing a program through windows firewall
body: <p>I am new to windows Firewall. I have seen this dialog and unable to relate the meaning of it.<a href="https://i.stack.imgur.com/VLdf5.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/VLdf5.png" alt="enter image description here"></a></p>
  
  <p>The above dialog says that <strong>"Allow python to communicate on these networks:"</strong>. It then gives two checkboxes, one for each Private network and one for Public network.</p>
  
  <p>So, my questions are :-
  1)   What is the difference between Private network and public network ? Which network out of these, does internet belongs to ?</p>
  
  <p>2) what is the meaning of allowing a program to communicate on given network ? Let's take it from both <strong>Client as well as Server</strong> perspective. A program(acting as client), when allowed through firewall on a given network(public/private), <strong>does it mean that it can establish socket connection with other computers within the same network ?</strong>
  A program(acting as server), when allowed through firewall, <code>does it mean that it can accept socket connections from other computers within the same network ?</code></p>
  
  <p>3) How can I control a program to either listen for connections OR to establish connections ? By that I mean, How can I control that any python program(python.exe) must not be allowed to listen for connections ?</p>
  
  <p>Thanks in advance.</p>