I need to transfer data from one process to another.  

I'm quite familiar with the subject when the two processes were originated from C code - not once I used files, signals and pipes in C-code to accomplish it, but never have I tried to do it between two processes where one was originated from Java code, and the other from C code. 

Since all the above methods require the (Linux) native API, and the JVM is on the way, I have decided to use a socket to communicate between these two processes, and I have a couple of questions: 

1. How common is it to use socket to communicate between two processes on the same machine?
2. Does the fact that there is no designated "Server" and "Client" can set any obstacles (implementation-wise)?

The reason I'm asking is that everywhere I read online, there is always one process defined as 'server', and one as 'client'. This is not the case in my situation. Plus, I never tried to use socket for this purpose.