MCPcopy Create free account
hub / github.com/crownengine/crown / bind

Method bind

src/core/network/socket.cpp:283–310  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

281}
282
283BindResult TCPSocket::bind(u16 port)
284{
285 close();
286 _priv->socket = socket_internal::open();
287#if !CROWN_PLATFORM_WINDOWS
288 // On Windows, SO_REUSEADDR allows duplicate listeners on the same port...
289 socket_internal::set_reuse_address(_priv->socket, true);
290#endif
291
292 sockaddr_in address;
293 address.sin_family = AF_INET;
294 address.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
295 address.sin_port = htons(port);
296
297 int err = ::bind(_priv->socket, (const sockaddr *)&address, sizeof(sockaddr_in));
298
299 BindResult br;
300 br.error = BindResult::SUCCESS;
301
302 if (err == SOCKET_ERROR) {
303 if (last_error() == WSAEADDRINUSE)
304 br.error = BindResult::ADDRESS_IN_USE;
305 else
306 br.error = BindResult::UNKNOWN;
307 }
308
309 return br;
310}
311
312void TCPSocket::listen(u32 max)
313{

Callers

nothing calls this directly

Calls 3

openFunction · 0.85
set_reuse_addressFunction · 0.85
last_errorFunction · 0.85

Tested by

no test coverage detected