Error# 10014
Error description: The system detected an invalid pointer address in attempting to use a pointer argument in a call.
Reason: This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small. For instance, if the length of an argument, which is a SOCKADDR structure, is smaller than the sizeof(SOCKADDR)
(posted by VictorN in 2003; https://forums.codeguru.com/showthread.php?468828-Socket-error-10014-when-sending)
Suggestion:
int BytesToSend = 120;
int sendBytes = send(Soc, (char*) &BytesToSend, sizeof((char*)BytesToSend), 0);
Question: I have 2 applications one behave as server and other is client. server and client share some data. Everything was working until i increased the size of data that goes from server to client. as you can see the debug output.
How to apply the change described in Suggestion section?
External function:
Function integer send (int socket, ref blob buf, int len, int flags) Library "wsock32.dll"
Call to the send() function goes as following
public function integer uf_senddata (unsignedinteger asocket, blob ab_data);boolean lb_error
lb_error = false
if not ib_initialized then
if uf_initialize() = SOCK_ERROR then
lb_error = true
end if
end if
int retval
if not lb_error then
// blob lb_data
// lb_data = blob(as_data)
retval = send(asocket, ab_data, Len(ab_data),0)
if retval = SOCK_ERROR then
RecentError = uf_geterror()
lb_error = true
else
RecentError = 0
return retval /// its not the error
end if
end if
If lb_error then
return SOCK_ERROR
end if
end function
The call to the uf_senddata() is giving error because whole syntax of the dw was sent to it. But when i use just
dwDataSyntax = dw_1.Object.DataWindow.Syntax.Data
then there is no error (there is just one row but data will increase in future and i expect the same error)
Integer ret
String dwsyntax
dwsyntax = LibraryExport(GetCurrentDirectory() + "\dweQuery.srw", "dwe_query_status", ExportDataWindow!)
ret = u_test.uf_senddata(clientsock, Blob(dwsyntax))
IF Ret < 0 THEN
MessageBox(String(ret) + " :: " + String(RecentError), of_getErrorText(RecentError))
ELSE
MessageBox(of_getErrorText(RecentError), ret)
END IF