|
Hi,
I was using the article from Mike O. http://www.codeproject.com/internet/SocketFileTransfer.asp[^]
Everything works fine unless I have a firewall.
It looks like if the computer that needs to listen has firewall on it, the connection from the other computer will be filtered. When I use a PC w/o a firewall, everything works fine.
Is there a way to make sure the PC with firewall will accept calls from the other PC using the sockets ?
|
|
|
|
|
Yes, open the port you're using in the firewall settings on the PC with the firewall :p
|
|
|
|
|
Thanks for the reply but what does "firewall :p" means ?
Is it an MFC function or DOS ?
I tried running the command firewall in DOS and it showed nothing....
Thanks again,
Shay
|
|
|
|
|
I'm sorry for being unclear, what I mean is this:
A firewall's purpose is to prevent a PC from listening on any unopened ports. There is no way to programmatically get past a firewall that has a port closed; that's what firewalls are for, that's what they do, they do not let you host a connection on an unopened port. Your PC can't listen on a port blocked by a firewall? Good. That's the way it's supposed to be, if it COULD host a connection, it would mean your firewall was not functional.
To get your program to work from a computer with a firewall, you need to either open the port you're using in the firewall settings on that computer, or you need to run another instance of your program on a separate computer as a proxy, and use that as a server.
|
|
|
|
|
I have a DLL which was written as an MFC Extension DLL -- no CWinApp-derived class, and a DllMain function. I'm making changes to the DLL and would like to convert it over, and give it a CWinApp. What do I need to do besides moving the DllMain code into the InitInstance and ExitInstance overrides, and removing the _AFXEXT preprocessor define? I did those things, and the DLL builds fine; but when I attempt to load it in an application, an assert statement fails inside the CWinApp constructor -- the assert is,
ASSERT(AfxGetThread() == NULL);
-- AfxGetThread() is returning a pointer to theApp, which is the globally defined instance of the class I derived from CWinApp. Who modifies the module state before the CWinApp constructor is called?
|
|
|
|
|
Do you call AFX_MANAGE_STATE before call dll?
|
|
|
|
|
No -- this crash is occuring before any calls, when the DLL is loaded.
|
|
|
|
|
Sorry -- a misstatement. The crash occurs when the main application's CWinApp is being constructed, because the module state is already pointing to the DLL's CWinApp object.
|
|
|
|
|
My addvice don't try to figure out what the difference in the keys between the MFC ext and regular MFC dll. If you will do two empty projects one with MFC ext another regular MFC dll and take a look in Windiff what is the differences you will see that there is lot of stuff is different in dsp/vcproj
Better create new MFC regular dll move your code there and don't and keep CWinApp derived class untouched after wizard.
It is possible that you missing one of some precompile defenitions, but again figuring out could take a lot of time.
|
|
|
|
|
And the answer is: Not only do you need to remove the _AFXEXT define, you also need to add a _USRDLL define. Do those two things and it will work fine.
Bonus hint, regarding AFX_MANAGE_STATE: you apparently need to invoke this not only at the top of your exported functions, but also at the entry point of any worker threads you create that will use MFC functionality.
|
|
|
|
|
Hi,
A worker thread is running the threadproc. While it is running i want to send some data to it from main thread. How to do this?
Thanks in advance.
jagadeesh
|
|
|
|
|
|
There are several methods to do this:
1) Use a global variable that stores the data you want to send to the worker thread;
2) Use a singleton;
3) Use files;
I'd go with a singleton, that seems the be the most 'clean'. Remember to synchronise your data, since it will most likely be accessed by multiple threads (avoid corrupt data!).
There are probably some other methods you can use.
Er zit een korstje op mijn aars.
|
|
|
|
|
using Global variabe works simply.....
v
|
|
|
|
|
Since the thread does not have a message pump, using PostMessage() is out of the question. I think you are left with synchronization and events at this point.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Hi,
I've heard it's possible to do something like this,
struct Data myData =
{
{ #include "myData.dat" }
}
Or something like that... to include information from a file directly into a struct. My question is, what is the proper format for this, and how do I format the file so that it reads in correctly? Let's say my struct has 3 integers and a string, do I then have to have 3 integers and a string on each line of the file, separated by commas or something? Or what?
Thanks!
|
|
|
|
|
the #include preprocessor directive copies the content of the file in parameter at the place it is written. so, your code would work i think. but, i doubt the rounding { } are necessary.
however, the content of the myData.dat should be containing a correct C++ code that defines a structure...
struct Data {
#include "myData.dat;
} myData;
myData.dat :
private:
int m_i;
char m_c;
public:
Data();
~Data();
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
Right, actually what I need is the information to be included in a struct array rather than the struct definition itself, but the same principle should apply. Thank you.
|
|
|
|
|
IMO, anyone coding like that should be fired.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
Maximilien wrote:
anyone coding like that should be fired
yes... of course !
actually, i don't really understand the point why he tries to code this way ; i just answered consequently...
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
Using that method was my directive. If you understood the context and objectives you might see things differently. I can't talk about it since it's a military system.
|
|
|
|
|
i didn't see anything, i didn't heared anything...
... and you already told too much (we don't need to know you work on a confidential project or not)...
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
Software is software. You have good and solid software designs and bad software designs. Anyone who designs software like that, should go to school again. Any programmer who doesn't complain about such IMHO horrible design should go to school with the designer...
Behind every great black man...
... is the police. - Conspiracy brother
Blog[^]
|
|
|
|
|
Thank you for helping to perpetuate the belief that all computer scientists are elitist and arrogant and jump to conclusions about others' intelligence and skills based on their own lacking information and experience.
Anyway... to the original poster:
You're including actual data with this design, right? You're not trying to include compiled code from another file? It's basically just a data table that you have as an external file?
|
|
|
|
|
Maximilien wrote:
IMO, anyone coding like that should be fired.
No, it's sometimes (rarely) necessary for large table structures.
|
|
|
|