| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: WinSock2 is on our system but the h file generated from rpcgen does not include winsock2.h it includes windows.h which in turn includes WinSock.h not Winsock2.h. Is there any way around this?
|
| A.: Yes, you can include w<insock2.h> before including d<32-rpc.h>. |
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: RPCGEN | Last updated: 3/30/2008 |
| |
| Q.: When running RPCGEN is C-preprocessing always required? |
A.: Your files will require C-Preprocessing when they contain #if, #else, #ifdef, #ifndef, #if defined etc. If the files contain these definitions please use the C-Preprocessor option.
Example
If you are using cl.exe (Microsoft's Visual C++ compiler) the argument should be
-p "cl.exe /EP /nologo" file.x.
The existing command line options can be used in conjunction with -p option.
If you are using a c-preprocessor other than cl.exe please enter the argument list as needed. The argument list should be able to send the processed file to the stdout and should only contain information for RPCGEN to do further processing. That is, the output must not contain any banner or text issued by the compiler. For Microsoft C++ the /nologo option will inhibit these.
|
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: Server Multithreading | Last updated: 3/30/2008 |
| |
| Q.: I have my own threading class that takes care of race conditions when starting and shutting down a thread. I would like to call the server_proc from within it. What calls should I use?
|
A.: If you want your code to handle the multithreading, use the svc_run() or svc_run_ex(0) calls to run the server.
|
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: Server Multithreading | Last updated: 3/30/2008 |
| |
| Q.: Is there any difference in the way svc_run_ex(0) and svc_run_ex(n) work between version 3.1 and 4.01? |
A.: There is no difference as far as UDP connections go. That is if svc_run_ex(0)is called, RPC runs without any threads and deals with the requests one by one. If svc_run_ex(n)is called this means that RPC runs with [n] pre-created threads and deals with the requests using all available threads. In this way, the thread number is limited to [n] regardless of how many clients are connected to server.
For TCP connections however a new thread is created for any new connected client regardless of whether svc_run_ex(0) or svc_run_ex(n) is called. |
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: Timeout values | Last updated: 3/31/2008 |
| |
| Q.: How can I change the timeout settings in the rpc client?
|
A.: The function call clnt_control() can be used to change timeout settings for the client objects.
There is one timeout for waiting for a reply, which is for both TCP and UDP clients. Function clnt_call() will return TIMEOUT error if it doesn't receive reply during this timeout value.
clnt_control(clnt, CLSET_TIMEOUT, pointer_to_timeval)
There is one resend timeout specifically for the UDP client, the UDP client may resend the request if it doesn't receive a reply during this timeout value.
clnt_control(clnt, CLSET_RETRY_TIMEOUT, ...)
|
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: Timeout values | Last updated: 3/31/2008 |
| |
| Q.: What is the difference between the timeout value in clnt_control (clnt, CLSET_TIMEOUT, ....) which is sent when the client is created and the value set in HKEY_LOCAL_MACHINE\SOFTWARE\Distinct\DLLS\RPC32\Timeout? |
A.: HKEY_LOCAL_MACHINE\SOFTWARE\Distinct\DLLS\RPC32\Timeout is the default timeout value for the client to wait for a reply.
All clients on this machine will use this value if not changed.
But the client wait-for-answer timeout value can be changed
by using clnt_control (clnt, CLSET_TIMEOUT, ....). If the
above clnt_control() is called, the default value from
registry will be ignored for that specified client.
|
| |
Do you find this information useful ? Yes No Not Sure |
|