NewUnhandledException
NewUnhandledException

Reputation: 743

TCP Sockets connecting to a server on two different ports

I have a custom TCP Server listening on port 5888(dummy port). The proxy server listens for incoming connections. When the proxy receives HTTP request for certain pages, it should relay it to the main server on port 80.For other page requests the proxy is required to send data to the main Server on port 8081.

The port 80 is used to service the HTML Pages where as the port 8081 is used for streaming data to the clients.

I am able to receive the incoming connections on the proxy and then read the data from the clients. After reading the data, I can determine which port to connect to on the main server for sending the data.

I am stuck at deciding how to connect on 2 ports for sending the data from the clients to the Main Server?

Upvotes: 1

Views: 2783

Answers (3)

Murtuza Kabul
Murtuza Kabul

Reputation: 6514

Your client is connected to the proxy server on port 5888 so no matter from what real server (Web or streaming) you take the data, you are going to provide the data to the client using port 5888 only.

It seems to be a not so practical solution. I am assuming here that you are trying to achieve a kind of control port and data port structure where one port is controlling the streaming from another port.

Just creating two sockets is sufficient for obtaining data from two servers. Here you will have to manually create a protocol which your client understands as you are going to provide both html and streaming data to the client using single port.

Upvotes: 0

riwalk
riwalk

Reputation: 14223

You need to stop thinking of your program as a server. After you have received the connection, read the data, and decided what port to send it to, shift gears and start operating as a client would.

Just open a new connection to "localhost" on either port 80 or 8081 and re-send the data you received as if you were the original client.

Upvotes: 0

LuigiEdlCarno
LuigiEdlCarno

Reputation: 2415

In that case you either need 2 socket connection objects to the same IP on the different ports (this is legal), or you have one connection object which reconnects according to the port you have to deal with.

Depending on how often you have to switch connections the latter version might have a huge overhead, plus the first one allows you to send data to both ports virtually simultaneously.

Upvotes: 1

Related Questions