L_InetAttachToSocket
#include "l_bitmap.h"
#include "ltnet.h"
L_LTNET_API L_INT L_InetAttachToSocket(phComputer, hSocket, pfnCallback, pUserData)
L_COMP * phComputer; |
/* address of a variable to update */ |
SOCKET hSocket; |
/* handle to an existing windows socket */ |
INETCALLBACK pfnCallback; |
/* pointer to a callback function */ |
L_VOID * pUserData; |
/* user defined callback data */ |
Attaches a computer to an existing Windows socket.
Parameter |
Description |
phComputer |
Address of the variable to be updated with the handle of the computer attached to hSocket. |
hSocket |
Handle of an existing windows socket. After this call, both the computer and socket can be used to send and receive data. |
pfnCallback |
Pointer to a callback function of type INETCALLBACK for receiving messages for phComputer. Use the function pointer to your callback function as the value of this parameter. |
pUserData |
Void pointer that you can use to pass one or more additional parameters that the callback function needs. |
|
To use this feature, assign a value to a variable or create a structure that contains as many fields as you need. Then, in this parameter, pass the address of the variable or structure, casting it to L_VOID *. The callback function, which receives the address in its own pUserData parameter, can cast it to a pointer of the appropriate data type to access your variable or structure. |
|
If the additional parameters are not needed, you can pass NULL in this parameter. |
Returns
SUCCESS |
This function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Comments
This function will allow you to attach to an existing Windows Socket. (See the Windows SDK for the socket command for more explanation on Windows Sockets). When the computer handle is no longer needed, use L_InetDetachFromSocket to detach from the socket. Calling L_InetDetachFromSocket will close hComputer, but will leave the socket useable (L_InetClose does not need to be called for the computer handle). Do not call L_InetClose unless both the computer handle and the windows socket need to be closed.
If the function is successful, any notifications for this socket are redirected to pfnCallback.
Required DLLs and Libraries
LTNET For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application |
See Also
Functions: |
L_InetClose, L_InetDetachFromSocket, L_InetSendRawData, L_InetSendData, L_InetGetQueueSize, L_InetClearQueue |
Topics: |
|
|
Example
This example will create a socket of type datagrams
L_INT InetAttachToSocketExample(L_VOID) { L_INT nRet; SOCKET hSocket; SOCKADDR_IN sin; L_COMP hComputer; /* create the socket */ hSocket = socket (AF_INET, SOCK_DGRAM, 0); // set your callback in here sin.sin_family = AF_INET; sin.sin_addr.s_addr = inet_addr("207.238.49.190"); sin.sin_port = htons(1000); connect(hSocket, (LPSOCKADDR) &sin ,sizeof(sin)); nRet = L_InetAttachToSocket(&hComputer, hSocket, NULL, NULL); if(nRet != SUCCESS) return nRet; // do the things you need // detach from the socket when you don’t need to use the LEADTOOLS functions anymore nRet = L_InetDetachFromSocket(hComputer, TRUE, &hSocket); if(nRet != SUCCESS) return nRet; // restore your callback for the socket… // delete the socket shutdown(hSocket, SD_BOTH); // close the socket closesocket(hSocket); return SUCCESS; }