Chat program

Hi to all
small question for someone extremely new to the subject. Could anyone point me in the direction of the source code for a client server, message passing program?

Thanx for all your help

which inter process comunication would you like to use ?

I guess you talk about sockets based Client/Server code ?

There are many examples available..

here's one I just found while searching for "client.c socktes example" :

checked it out and the source code looks good (for Unix!).


cheers hezki
looks fine. Need to go and run it under unix, as im using NT at the moment.

just realised that its TCP, i need it in UDP. all offers very greatful

Suggest changing the TCP socket calls to UDP, for starters.

Found one on this URL:

there are many examples like this , just do a simple search...

the main difference is using SOCK_DGRAM instead of SOCK_STREAM on the socket definition.. and of course you should be aware it's connectionless oriented protocol..
useful for broadcasts for example or reliable lines.


UDP can also be used in noisy environments; however the transmission control protocol that manages packet loss, sequencing, etc. must be higher in the protocol stack.

TCP does the 'transmission reliability' transparent to the application programmer. However, this does not preclude the use of higher level 'transmission reliability' on top of UDP systems.

In fact, I have worked with many companies who had issues with the overhead associated with TCP and rebuilt the transmission control model on top of UDP or RAW SOCKETS.

TCP is designed for a generic Internet end-to-end model; however it is not perfect or the most efficient for all transmission models. It is inaccurate to translate 'connectionless' UDP vs. 'connection oriented' TCP to 'unrealiable' and 'reliable'. TCP is connection oriented. UDP is not connection oriented. UDP can be used in applications where connection oriented behavior is required, it just must be done in a higher level in the stack.

We would have to start a new forum 'Advanced UNIX' or 'Advanced Networking' to further discuss, as this is not a newbies topic.