I'm a hacker, a free software advocate, and a student.
After the release of Microsoft Windows XP Service Pack 2, there is a builtin firewall. Any software, that attempts to listen on any TCP/IP port is caught by this firewall. And, for small applications which uses TCP/IP on the same computer for IPC (Interprocess Communication) also get caught by the firewall. To ensure that they won't get stopped by firewall, change server to always listen on only local loopback address. Whereas usually, any server written will listen on all interfaces. Since, it is not required in this kind of application, for the purpose of security you should avoid this. There is a java sample code, I've written to illustrate this, although you can write any equivalent code in C/C++ or any language which has an interface with BSD Sockets, or Winsock.
import java.net.Socket; import java.net.InetAddress; import java.net.ServerSocket; import java.net.SocketAddress; import java.net.InetSocketAddress; import java.io.IOException; public class FirewalledServer { private static int PORT = 19450; private static void Main() throws IOException { // instead of starting using traditional way: // ServerSocket server = new ServerSocket(PORT); ServerSocket server = new ServerSocket(); // Get localhost:PORT address SocketAddress sockaddr = new InetSocketAddress( InetAddress.getLocalHost(), PORT); // Bind and listen to it with backlog 3 (you can have any backlog) server.bind(sockaddr, 3); Socket client = server.accept(); System.out.printf("Connection arrived from %s\n", client.getRemoteSocketAddress()); client.close(); server.close(); } public static void main(String[] args0) { try { Main(); System.exit(0); } catch(IOException e) { System.err.printf("I/O Error: %s\n", e.getMessage()); System.exit(-1); } } } // vim:ts=4
I've tested above code in JDK 5.0 update 4 and it may work on earlier releases too. For accurate information check for the availability of routines. I was using Jext and whenever I started Jext, firewall blocks. So with the help of my friend's Unix Networking Programming by W. Richards Stevens, I got this idea.
Anyways, its a good practise to perform only what is required accurately or precisely
200601 200602 200603 200604 200605
There are some of my webpages tooo...
This blog is [ INVALID XHTML v1.0 ] [ INVALID CSS v2.0 ]