No need to apologise for not knowing. We all have to learn. Asking questions and showing your efforts is great. I hope that someone can help you as I'm guessing it's not working given that you are asking the question.
You are right that both ends will need to know how to send packets to the other, unless you are using UDP. The more usual TCP is a bit like sending a parcel with recorded-delivery so an acknowledgement is returned by the receiver. Using UDP is more like just sending a postcard and hoping from a holiday abroad it gets there.
I have two questions initially:-
Do you have a default route/gateway for all the traffic without a match in your list?
Can you give us the output from netstat -rn on server A too please?
If you want packets to go from A to B, you should show us first the routing info on A, then B, and the netmasks. From what you show, A should be reachable from B.
Not knowing too much of "Solaris networking" either, that second line having an external gateway for an internal network surprises me a bit...
I realise that I'm coming to this thread very late so what I write may not be relevant.
On a straightforward Solaris configuration the default router is defined in
/etc/defaultrouter
This file contains only the ip address of the default router on the first line of the file, left justified, so very easy to create manually and reboot. For example:
134.177.23.111
Then, faced with any request that it doesn't know where to send, the system will send it there.
Just a comment, /etc/defaultrouter is deprecated and no more used with Solaris 11 and newer. It is still used with Solaris 10 though, which looks like what the OP is running.