Hi,
To establish more connections using BSD sockets, I need to determine the best approach.
1)Should I implement multiple threads for this purpose? For example, I could use a threading model similar to the following:
https://www.keil.com/pack/doc/mw6/Network/html/group__bsd__routines.html#ga7005ffbeeff92be5394ff3244da79028
2) Alternatively, should I create a server thread and utilize the listen function with a backlog argument greater than 1? If that’s the case, I would need to manage incoming connections using the accept function to ensure they are handled.
listen
accept
3) As I see the Network debug window details, there is a bsd_cb_tcp callback function, but there is no information on how to implement or use it, Is there any resource?
4)How can I get the BSD socket states, such as Established, Connected, or others?"
5)Is there a function to determine the amount of available memory
Dear Andreas Barth,
I followed various steps, but the documentation on BSD is full of flaws, which has left me feeling confused. Is there an example of multiple BSD connections in MDK?
My code
sd = socket (addr.sin_family, type, 0); sck_mode = 1; ioctlsocket (sd , FIONBIO, &sck_mode); bind (sd, (SOCKADDR *)&addr, sizeof(addr)); listen (sd, 4);
The code above does not open more than one connection.
-------------
Some of the flaws:
https://www.keil.com/pack/doc/mw6/Network/html/group__bsd__routines.html#gac6b00a29e8f1664d7ba4a70bfb92d9db
In the sample code, the addr is a member of SOCKADDR_IN, which can't be sent to SOCKADDR (the fourth item in the recvfrom command).
addr
SOCKADDR_IN
SOCKADDR
recvfrom
https://www.keil.com/pack/doc/mw6/Network/html/group__bsd__routines.html#ga0b42eb9e32b55aff7130ef48afd8b885
In the sample code, SCK_SUCCESS is not defined. The correct term is BSD_SUCCESS.
SCK_SUCCESS
BSD_SUCCESS