Binding 2 UDP sockets on same port, connected to different destinations, 1 receives
Posted on
16th Feb 2014 07:03 pm by
admin
Hello,
My application wants to send/recv data to 2 different UDP ports on a remote computer, using the same source port.
So I bind to the same local port which works, and connect to the remote IP : port which works as well, but then randomly only one of the two sockets will receive data from the stack, even though packets are arriving on the network for both.
In this code, the local UDP port is always 13398; the first time this code is called, the destination is 192.168.13.45:6970 and the second time it's 192.168.13.45:6972.
What would cause only one of the sockets to receive data afterwards? Also it's randomly the first or the second one that receive data, but once both sockets are binded and connected, only that random one will receive data.
Thanks!
SOCKET serverSock = ::socket(AF_INET, SOCK_DGRAM,IPPROTO_UDP);
int i=1;
if ( setsockopt(serverSock, SOL_SOCKET, SO_REUSEADDR, (char *)&i, sizeof(i)) != 0 ) {
logger.warn(_T("Could not set SO_REUSEADDR: %s"), GetWSATextError(WSAGetLastError()));
}
SOCKADDR_IN saServer, dest;
memset(&saServer,0,sizeof(saServer));
saServer.sin_family = AF_INET;
saServer.sin_addr.s_addr = INADDR_ANY; // Since this is a server, any address will do
saServer.sin_port = htons(m_manager->GetLocalUDPPort()); // Convert int to a value for the port field
int ret = bind(serverSock, (struct sockaddr *) &saServer, sizeof(saServer));
if (ret != 0) {
logger.warn(_T("Could not bind to udp port 1: %d, %s"), m_manager->GetLocalUDPPort(), GetWSATextError(WSAGetLastError()));
return false;
}
memset(&dest,0,sizeof(dest));
dest.sin_family=AF_INET;
dest.sin_addr.s_addr=m_deviceIP;
dest.sin_port = htons(m_devicePort1);
ret = connect(serverSock, (sockaddr *) &dest, sizeof(dest));
if (ret != 0) {
logger.warn(_T("Failed to connect to udp 1: %s:%d, %s"), inet_ntoa(dest.sin_addr), m_devicePort1, GetWSATextError(WSAGetLastError()));
return false;
}
No comments posted yet
Your Answer:
Login to answer
202
12
Other forums
pagination - need help on passing of search query.
Hi, i have been trying for days but couldn't get this sorted out. Would like some professional help
opening a window with after form submission
I know this this forum has nothing to do with JS, but i'm trying to use it with my php script.
<
Structure Question - One Table or One Table Per Record Set?
I have a web app (mySQL and PHP) which allows people to create an item with up to 200 records which
help with multi-update
Now sure how to ask this really....
10g database if that matters.
I have a customer
uploading video files into mysql in php
hi,
I have the video files which i have to upload into mysql db. along with creating thumbnails f
updating a single value to multiple non consecutive rows
I need to update the same value to multiple non consecutive rows. I need to add an experation date t
Making multiple rows with one query
I have a table called efed_handler_characters with two fields handler_id and bio_id. What query 2 is
PHP/Database issue
My friend is helping me make a database where you go to a certain webpage of my site and the page wi
Batch Related Pricing
Hi, I need some clarity on the batch related pricing
For example the following are the b
AJAX form submit
I recently built a form that submits data to my database with an ajax function that is called throug