Socket Problem

Hi all,
I have developed server/client application (using C) and tested it on the same machine .. but when I deploy them on different machines I get connection timeout.

Well .. server machine and client machine exists on different network segments, so there is a linux firewall box to route traffic (all ports are open on it)

so my question is there anyway that client program can communicate with my server program via the firewall .. is there any function in C for this kind of setup

(I searched alot but didn't find anything useful .. so If it is not possible .. how come there exists so many server/client application that can communicate via firewalls)

Firewalls let some stuff get through and they block some other stuff. You need to configure your firewall to let your connection through.

All applications can talk through a firewall as the firewall is just a configurable piece of hardware or software that allows or disallows network communication based on a set of rules. The firewall is transparent to the application and the underlying socket routines used just as the many routers and switches in between the two machines are transparent. This is the nature of IP packet routing.

However, if what you are talking about is attempting to get your application's communication "through" the firewall you may want to research such things as SOCKS. Many applications can use these "proxy servers" to tunnel through a firewall by authenticating their communication through it. If this is what you want then google SOCKS and I'm sure you'll find out a lot more than can be explained here.

i need some example ,thank