From mboxrd@z Thu Jan 1 00:00:00 1970 From: bernd@petrovitsch.priv.at (Bernd Petrovitsch) Date: Sat, 15 Oct 2011 13:58:23 +0200 Subject: Problem with a UDP server implements In-Reply-To: <201110150151405785431@gmail.com> References: <201110150151405785431@gmail.com> Message-ID: <1318679904.20227.1.camel@thorin> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org 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