MCPcopy Create free account
hub / github.com/brainflow-dev/brainflow / bind

Method bind

src/utils/socket_client_udp.cpp:153–188  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

151}
152
153int SocketClientUDP::bind ()
154{
155 // for socket clients which dont call sendto before recvfrom bind should be called on client
156 // side
157 // https://stackoverflow.com/questions/3057029/do-i-have-to-bind-a-udp-socket-in-my-client-program-to-receive-data-i-always-g
158 if (connect_socket != INVALID_SOCKET)
159 {
160 return (int)SocketClientUDPReturnCodes::SOCKET_ALREADY_CREATED_ERROR;
161 }
162
163 WSADATA wsadata;
164 int res = WSAStartup (MAKEWORD (2, 2), &wsadata);
165 if (res != 0)
166 {
167 return (int)SocketClientUDPReturnCodes::WSA_STARTUP_ERROR;
168 }
169 socket_addr.sin_family = AF_INET;
170 socket_addr.sin_port = htons (port);
171 socket_addr.sin_addr.s_addr = htonl (INADDR_ANY);
172 connect_socket = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP);
173 if (connect_socket == INVALID_SOCKET)
174 {
175 return (int)SocketClientUDPReturnCodes::CREATE_SOCKET_ERROR;
176 }
177
178 // ensure that library will not hang in blocking recv/send call
179 DWORD timeout = 5000;
180 setsockopt (connect_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof (timeout));
181 setsockopt (connect_socket, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof (timeout));
182
183 if (::bind (connect_socket, (const struct sockaddr *)&socket_addr, sizeof (socket_addr)) != 0)
184 {
185 return (int)SocketClientUDPReturnCodes::CONNECT_ERROR;
186 }
187 return (int)SocketClientUDPReturnCodes::STATUS_OK;
188}
189
190int SocketClientUDP::get_local_port ()
191{

Callers 6

prepare_sessionMethod · 0.45
__init__Method · 0.45
__init__Method · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected