|Both ends of a communication link need to be using the same port number. That is why they have default port numbers, so everyone is reading of the same page. You are not going to get that if one end is generating random numbers.|
I'm sorry but that statement is not right. It is true that both ends must agree on one port number if they are to communicate, these are what are referred to as the 'well known port numbers.' However, only the server end actually listens on such ports, while the clients speak to these ports on servers.
In fact what lee said is true: clients, who initiate outgoing connections to servers, actually get semi-random outgoing port numbers (technically they're not really random, but are usually assigned by the operating system in a round-robin fashion).
An analogy to this is me mailing you a letter. Obviously, for me to send you a letter we don't need to have the same address. However, I do need to know your address for the letter to get to you. Once you receive the letter, you'll also know my address (because I wrote it on the top corner of the envelope) but anyone can send you a letter from any address.
Routers with firewalls introduce a level complexity - Network Address Translation (NAT) - where one IP address is shared by many machines. The router uses the destination port number of incoming messages from the outside Internet to figure out which machine to forward those messages to on the inside. This is port forwarding. The forwarding rules are set up in the router to say something like "when an incoming connection is attempted on port 80, direct that request to the internal machine at address 192.168.1.1".
Back to something related more to the OPs question (which is probably stale now anyway .. but I found it doing a search so I'll offer an answer): The web disk protocol requires a two-way connection (two sockets are involved) because the server (the machine hosting the actual physical disk) needs to be able to write back to the client. This is why one of either port 2078 (SSL) or 2077 (non-SSL) needs to be opened up on the client (the machine making use of the storage). Since the OP seems to be using a 3G or EDGE dongle of some sort, it seems to me that the firewall on his laptop is where the port needs to be opened up.