The reason you are seeing wrong results when using your client/server program is because of the Convert From/To Dynamic Data VIs. When you use these VIs to convert to a 1D array, you lose timing information that is necessary for the Spectral Measurement VI.
You can see this by opening a blank VI, using a Simulate Signal VI, Convert From DDT(1D array of double) VI, Convert To DDT(1D array of double) VI, and finally a Spectral Measurements VI. You will see the same results as your client/server program. The results of your program are independent of the TCP/IP communication.
If you want to be able to use Simulate Signal and Spectral Measurements, you will need to send timing information through the TCP/IP communication as well. You can use the C
onvert From DDT to convert to a waveform, use a Get Waveform Components, and convert each of the elements in the waveform to a string. You will then have to do some string manipulation on both sides of the TCP/IP communication, eventually building a waveform on the client side. Finally, you can send that waveform as an input to the Spectral Measurement VI.
-Alan