|
Writing to and reading from a socket from bash script.
Hello all.
Here the description of the issue I am having.
I am writing a bash test script which reads lines from a file, builds ISO messages, sends them to a server, reads the response with response code and reports the result of the test to a file or on the screen.
The message that I need to send is 94 characters long.
Here's the portion of a code that I initially wrote:
###############################################
#~ Open socket.
exec 3<>/dev/tcp/172.26.0.25/9991
#~ Send msg.
echo "$msg_out" >&3 # OK but adds EOL character which confuses the server.
#~ Receive msg.
read -r msg_in <&3
echo "msg_in: $msg_in"
###############################################
It works OK with the "echoserver".
However, it does not on a real server.
The symptom is that the program is blocked on "read" statement.
One of the facts that is confirmed by server people is that the message received by a server is actually 95 bytes long.
So, based on this information I have 2 questions:
1. Is there any other way to do what I do in line "echo "$msg_out" >&3" to avoid End Of Line character?
2. Am I using the correct way to read from socket? "read -r msg_in <&3".
Thanks for your help,
vouser.
|