|
|
I'm glad you found something that'd be of use to you. Dr. Joseph is a terrific guy and his site is loaded with useful articles. On an additional note, he is supporting my view of using a thread pool: Even if the message that comes in from the socket requires considerable computing, the more effective method is to have all the sockets running in the main GUI thread, and have the extensive computing handled by threads from a thread pool.
Important: Never delete any of your messages that you post to this board. It is a RULE! Read the guidelines. I find a question has been posted to me and come here to reply, but I see that it has been removed.
“Follow your bliss.” – Joseph Campbell
|
|
|
|
|
I didn't deleted my post intentionally. Just hit the Post Message Button in a hurry instead of preview.
Don't misunderstand me.
Future Lies in Present.
Manmohan Bishnoi
|
|
|
|
|
This isn't a simple example and the use of threads together with CAsyncSocket is unjustified and inefficient. Joseph M. Newcomer is a deeply respect member in developer circles, however I would say that the link you found was never intended as a MFC networking tutorial. Mixing asynchronous sockets and threads make little sense, here is an overview of basic server concepts:
a) blocking servers (handling only one request at a time, then wait again blocking)
b) threaded servers (handling simultaneous requests, one thread for every new socket, maybe from a pool).
c) asynchronous server (handling simultaneous requests, one thread context will handle all sockets)
d) variants such as IO completition ports
Instead of trying to convert one example code you had into a different thing, it would be easier if you learn about different networking concepts and start with simple examples. There are so many choices and CAsyncSocket might not be the best alternative in the long term (there are known problems). Perhaps have a look at some of the links I gave you.
/M
|
|
|
|
|
Language ID is a WORD from function GetSystemDefaultLangID().
I think there are existing user/system functions which can convert language ID to String, such as:
0x03 (SUBLANG_ARABIC_EGYPT) to string "Arabic (Egypt)"
so that I can save my time to redo them one by one.
Any hints/links?
Thanks
|
|
|
|
|
The mappings are in "winnt.h". If you want to map IDs to strings like "Arabic (Egypt)" you'll have to do it yourself.
|
|
|
|
|
Hi all,
I'm currently doing my final year dissertation, being on wireless transmission in a client-server model. Can anyone suggest any dense literature about technical detailed c++ programming such as enabling communication between server and additional programs (such as ffmpeg), excessing USB devices (such as webcam, mic, video capture card) and the like..
Thanks in advance, any help will be much appreciated
|
|
|
|
|
typedef struct _ABC
{
//....
}ABC;
how to undef ABC here?
this is for correcting/updating VC lib errors.
|
|
|
|
|
includeh10 wrote: this is for correcting/updating VC lib errors.
Could you elaborate a bit on that ? Because I think you are trying to solve the problem in a wrong way.
|
|
|
|
|
Cedric Moonen wrote: Could you elaborate a bit on that ? Because I think you are trying to solve the problem in a wrong way.
how do you get a feeling of "wrong way"?
for this <winbase.h>
typedef struct _OSVERSIONINFOEXA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[ 128 ];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wReserved[2];
} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
typedef struct _OSVERSIONINFOEXW {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
WCHAR szCSDVersion[ 128 ];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wReserved[2];
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW;
|
|
|
|
|
You cannot remove a typedef.
These are 2 versions of the same struct, one for unicode (W) and one for non-unicode(A)
There should be a third typedef that will use one or the other depending of your project settings.
something like
#ifdef unicode
#define OSVERSIONINFOEXW OSVERSIONINFOEX
#else
#define OSVERSIONINFOEXA OSVERSIONINFOEX
#endif
Normally one will use the third typedef so that the code can be easily converted to/from unicode without having to manually change the code.
So, what't the errors/problems you originally had ? compilation errors ? runtime errors?
This signature was proudly tested on animals.
|
|
|
|
|
Maximilien wrote: So, what't the errors/problems you originally had ? compilation errors ? runtime errors?
Do you know how many reserved data have been used today?
|
|
|
|
|
includeh10 wrote: Do you know how many reserved data have been used today?
huh ? talking about the wReserved field of the structure ? so what about it ? it's reserved, you should not really care about that. use GetVersionEx to get the structure and be done with it; me think the usage is simple, unless you want to make it complex for no reason at all.
please refer to this[^] post if you want more help... because now, I'm not certain what question you are asking; we're not mind readers.
This signature was proudly tested on animals.
|
|
|
|
|
Maximilien wrote: you should not really care about that.
You are far away from my post.
If you don't care about this, you just use it, no one blames you.
This struct and many others have been redefined for many times by many programmers, people have their own reasons to redefine them, I suggest you do not tell them what you said as quoted sentence.
|
|
|
|
|
includeh10 wrote: This struct and many others have been redefined for many times by many programmers, people have their own reasons to redefine them, I suggest you do not tell them what you said as quoted sentence.
Once again you seem to be losing the plot here. If you have a problem with your code then show what you have tried, explain the problem, including any error messages, and people will try to help you. But don't start being abusive just because you don't get the answer you think is due to you.
|
|
|
|
|
Richard MacCutchan wrote: Once again you seem to be losing the plot here. If you have a problem with your code then show what you have tried, explain the problem, including any error messages, and people will try to help you. But don't start being abusive just because you don't get the answer you think is due to you.
You lost point for who is first "start ..."
Is my post clear? is any replies of the post clear?
|
|
|
|
|
includeh10 wrote: Is my post clear?
No it is not clear, which is why I suggested that you explain what you are trying to do and what is not working.
|
|
|
|
|
His replies were very clear while most of your posts fall into the belligerent a**hole category. If you'd learn to ask a reasonable question and display a few manners, you might do a lot better.
You measure democracy by the freedom it gives its dissidents, not the freedom it gives its assimilated conformists.
|
|
|
|
|
Tim Craig wrote: ...while most of your posts fall into the belligerent a**hole category.
While he does display that characteristic on occasion, this time he is just asking outright senseless questions. The term "chasing rabbits" comes to mind.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
I beleave the ruler in any forum:
"answer question if you can, or leave it."
|
|
|
|
|
includeh10 wrote: answer question if you can, or leave it.
A number of people are trying to answer your question, but first they need to understand what the problem is. That is why they have asked for more information.
|
|
|
|
|
Richard MacCutchan wrote: Once again you seem to be losing the plot here. If you have a problem with your code then show what you have tried, explain the problem, including any error messages
Is "plot here" only "any error messages"?
I s my post a C++ question?
|
|
|
|
|
includeh10 wrote: Is "plot here" only "any error messages"?
I apologise if that statement is not clear, it is a common English expression, which means that we are arguing about the wrong things. Let's get back to your question and find out what it is that you are having trouble with.
includeh10 wrote: I s my post a C++ question?
That is what we are trying to find out.
|
|
|
|
|
Try to find any replies related to the topic you posted then create your personal policies for public.
|
|
|
|
|
includeh10 wrote: Try to find any replies related to the topic you posted then create your personal policies for public.
I have no idea what this is supposed to mean.
Do you have a programming problem or not?
|
|
|
|