Problem with a UDP server implements

Bernd Petrovitsch bernd at petrovitsch.priv.at
Sat Oct 15 07:58:23 EDT 2011


On Sam, 2011-10-15 at 01:51 +0800, jiangtao.jit wrote:
> Hi:
> 
> I'm writing a UDP server and meet a problem
> the UDP server program is run on a box with single card but has multi ip:
> like    eth0        10.0.0.1
>         eth0:1     10.0.0.2
> 		eth0:2		11.0.0.1
> 
> I bind the server socket with INADDR_ANY
> 
> when a client send a packet to 10.0.0.2(the eth0:1 's ip)
> the server can recieve the packet and reply, but the client can't recieve the server's response
> I use wireshark to capture the response packet
> and found that the server use 10.0.0.1(the eth0 's ip) as saddr in the response packet
> I expected it to be 10.0.0.2 but it's not
> my question : is there any way to let the UDP server relpy just use the ip it receieved the request ?
> It's :
> when a client send a request to 10.0.0.1(eth0); the server use 10.0.0.1 to response
> and another client send a request to 10.0.0.2(eth0:1); the server use 10.0.0.2 to response

You can always build the complete raw packet (including the IP header)
yourself.

	Bernd
-- 
Bernd Petrovitsch                  Email : bernd at petrovitsch.priv.at
                     LUGA : http://www.luga.at




More information about the Kernelnewbies mailing list