|
How can I connect a client application running behind a proxy to a web server?
The connection cannot be a direct TCP to the server as the proxy is in between. I can have a Http connection , the way a browser works. But how do I achieve it. Any suggestions??
|
|
|
|
|
simply enough - create a tcp connection to the proxy machine and then send your request as usual. Only difference is, that the request should be in a 'full' form. Instead of:
<br />
GET /page.htm HTTP/1.1<br />
...
you'd use:
GET www.codeproject.com/page.htm HTTP/1.1<br />
...
I'm not sure about the http: prefix, but you can check it in RFC.
Then the proxy you are connected to, simply parses the URL from the request and forward it to the right machine.
This is mostly all you have to do. If you want to be absolutely correct, there are some client-proxy specific headers like 'Proxy-Authentication ' etc. but these are also described in RFC.
Hope this helps
|
|
|
|
|
What I have read about Http CONNECT is that it is used to establish a secure connection to the server.Does that mean that I can connect only to port 443 of the Listner i.e. server?
Can I connect to the port 80 of the server i.e specify the ip address:80 in the CONNECT method
|
|
|
|
|
CONNECT is used for creating a tunnel through the proxy - useful mostly for secure connections. It simply tells the proxy that it have to make connection to the server & port you specified - the syntaxe addr:port should be valid then. I will try to clarify the intent of the command CONNECT :
Normally the proxy 'understands' the flow of the http connection, and time to time he even changes it - e.g. instead of requesting the page from the server it sends the page from the local cache etc.
But when using the CONNECT command, this is not true and the connection is then transparent - what you send to the server is what the server receive and vice versa.
This is the reason, why it is used when secured channel is needed. Because if the proxy will try to change the encrypted data (e.g. take the encrypted page from the cache) it will make an error during the decryption on the client (this is a must, else the secure channel will not be secure ).
So, yes, as far as I know, you can connect to the port 80 of the server through the CONNECT , but then the pages will not be cached (which can be as well advantage as disadvantage ).
Only take a care, that there are some proxies, that doesn't support the CONNECT command, or doesn't support it correctly. But I think currently most of them do.
Hope this helps
|
|
|
|
|
I have a SDI app and I want to open a new SDI UI with a new toolbar, a new statebar and a new view by running a command from the menu (or by any other methods).How can i make this and how can i send messages and value of variables between the two windows.Thanks.
modified 1-May-21 21:01pm.
|
|
|
|
|
Assuming you already have a CFrameWindowImpl -derived class written, create a new instance of it, and call CreateEx() just like you do for the app's main window.
One thing you have to do in the new class is not let WM_DESTROY get passed to CFrameWindowImpl , because CFrameWindowImpl::OnDestroy() calls PostQuitMessage() which will make the app close.
--Mike--
Yeah, payin' the bills with my mad programming skillz.
Defraggin' my hard drive for thrills.
Homepage | RightClick-Encrypt | 1ClickPicGrabber
"You have Erica on the brain" - Jon Sagara to me
|
|
|
|
|
Hello to all.
I´m new here, but have the first question.
I need to creat an ATL dll to add like a toolbar in the internet explorer.
I have a site like a yahoo for search, but only for internal domains. then I need to create the dll to when the user types one address in the address toolbar of internet explorer, the explorer find in my server, and my server if not found domain redirect to internet. but need to search in my server first, how i can do this. ?
Someone have a sample ou something ?
best regards..
Leandro Delamare
|
|
|
|
|
I downloaded a STL library that was modified for use with PocketPC, and I'm trying to compile my app.
I'm getting the following compiler errors:
stl_tree.h(105) : error C2146: syntax error : missing ';' before identifier 'iterator_category'
stl_tree.h(105) : error C2501: 'iterator_category' : missing storage-class or type specifiers
stl_tree.h(106) : error C2146: syntax error : missing ';' before identifier 'difference_type'
stl_tree.h(106) : error C2501: 'difference_type' : missing storage-class or type specifiers
stl_tree.h(200) : error C2146: syntax error : missing ';' before identifier 'iterator_category'
stl_tree.h(200) : error C2433: 'bidirectional_iterator_tag' : 'inline' not permitted on data declarations
stl_tree.h(200) : error C2501: 'bidirectional_iterator_tag' : missing storage-class or type specifiers
stl_tree.h(200) : fatal error C1004: unexpected end of file found
I honestly don't know where to look for the problem. I haven't mucked around with the stl code, so as far as I know, it should compile just fine.
Can anyone provide any clues for me?
------- signature starts
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
Please review the Legal Disclaimer in my bio.
------- signature ends
|
|
|
|
|
Seems like you might need to #include <iterator> (a shot in the dark, of course).
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
I'd already tried that.
------- signature starts
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
Please review the Legal Disclaimer in my bio.
------- signature ends
|
|
|
|
|
You probably already have tried this or have reasons not to, but about a year ago we tried STLPort with the PocketPC and didn't have any problems with the trees and such.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
I had a similar problem, and what I found that I needed to do was typedef my iterator object type, or do a using namespace std .
With the typedef I usually do something like this:
typedef set<int> setInt;
typedef setInt::iterator iterSetInt;
And that solved my problems.
Good Luck
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
I have something to the effect of this:
<br />
typedef map<String, variable> list;<br />
list vars;<br />
<br />
class my_class {<br />
public:<br />
my_class() {}<br />
void function() {<br />
vars.insert(pair<String, variable>((String("hi"), variable(6)));<br />
}<br />
};
This compiles fine; no errors. It runs up until I call my_class.function() tries to insert and then it freezes. However, if I move the move the map declaration into function() and make it local, it runs fine. But doesn't do me any good and I lose the data when the function ends.
Anyone know why this is happening? Is this supposed to happen? Is there a way around it?
Thanks for any help you can give.
|
|
|
|
|
If the my_class memory has become trashed, then insert could fail in the manner you describe.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
the variable class is a little memory extensive. If you declare overloaded operators outside of the class (ex. bool operator==(variable var, variable other) ) does it count towards the size of the class? I don't think it does, I just want to be sure
|
|
|
|
|
vars.insert(pair<String, variable>(<font color=#ff0000>(</font>String("hi"), variable(6)<font color=#ff0000>)</font>); Try removing the extra pair of parentheses marked in red.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
i need those parentheses.
It works now. I moved things around and lowered the class size and it seems to be working now.
|
|
|
|
|
i have a bunch of CSplitterWindows, 2 CSplitterWindows and a CHorSplitterWindow, organized like this:
<br />
+----------------------------------------+<br />
| || |<br />
| || |<br />
| || |<br />
| || |<br />
| || |<br />
|========================================|<br />
| || |<br />
| || |<br />
| || |<br />
| || |<br />
| || |<br />
+----------------------------------------+<br />
with some hackery i made the two vertical splitters stay together, to simulate a 4 way splitter. the problem is when the vertical splitters are moved to the left, the left panes don't recieve WM_SIZE, and when the horizontal splitter is moved up, it doesn't send WM_SIZE to the upper pane. all windows recieve WM_SIZE properly if the splitters are moved right, or down. is this a glitch in ATL or a problem of mine? either way, how would i go about fixing it? i assume if its ATL's problem, i have to derive two new classes and send WM_SIZE from my new classes?
oops, diagram got messed up, here is the code i use to set up the panes:
m_HorSplitter->SetSplitterPane(SPLIT_PANE_TOP, m_TopSplitter->m_hWnd);
m_HorSplitter->SetSplitterPane(SPLIT_PANE_BOTTOM, m_BottomSplitter->m_hWnd);
m_TopSplitter->SetSplitterPane(SPLIT_PANE_LEFT, m_Views[0]);
m_TopSplitter->SetSplitterPane(SPLIT_PANE_RIGHT, m_Views[1]);
m_BottomSplitter->SetSplitterPane(SPLIT_PANE_LEFT, m_Views[2]);
m_BottomSplitter->SetSplitterPane(SPLIT_PANE_RIGHT, m_Views[3]);
|
|
|
|
|
|
Hello,
I have a byte array in dialog object on ATL project, and i want to draw the image that represent the bytes array to my dialog.
Threre is any Article that can help me to draw the picture to the client device context? becuase i did it, but i don't see any picture.
Any information about this issue will help...
Thank's alot,
Itay.
|
|
|
|
|
Hi,
Are you drawing in the WM_PAINT handler or just using a CClientDC inside some function? Maybe during dialog initialization?
You should draw in the WM_PAINT handler if you want your drawing to be permanent, otherwise the next time window is updated your drawing will be lost.
Paolo
------
Why spend 2 minutes doing it by hand when you can spend all night plus most of the following day writing a system to do it for you? - (Chris Maunder)
|
|
|
|
|
I did it inside the OnDraw function.
|
|
|
|
|
Hi Guys,
I have a small doubt..In the following code im creating a window and then displaying as modelless using ShowWindow..
<br />
CMyWindow wnd;<br />
RECT rect;<br />
rect.top=0;<br />
rect.left=0;<br />
rect.bottom = 0;<br />
rect.right = 0;<br />
wnd.Create( NULL,rect, _T("Hidden_Window"),WS_OVERLAPPEDWINDOW);<br />
wnd.ShowWindow(SW_HIDE);<br />
CMainDlg dlgMain;<br />
if(dlgMain.Create(wnd.m_hWnd) == NULL)<br />
{<br />
ATLTRACE(_T("Main dialog creation failed!\n"));<br />
return 0;<br />
}<br />
<big>dlgMain.ShowWindow(nCmdShow);</big><br />
<br />
MainDlg is a child of Wnd(which is hidden)..Now this works fine but the problem is that now i want it as Modal Dialog..So if i replace ShowWindow by DoModal
I get assertion failure saying that handle of created window is null..
So any idea..
cheers,
Super
------------------------------------------
Too much of good is bad,mix some evil in it
|
|
|
|
|
I don't know if this applies to your code, but usually with modal boxes, the only thing you do is call .DoModal() . You don't create the window yourself, hence the ASSERT failure.
|
|
|
|
|
Netmeisters,
I am trying to do something which should be simple. Using Visual C++ I want to create a map containing an STL string as a key and my own type as a value.
#include <string>
#include <map>
#include <iostream>
using namespace std;
map<string,CReport>slips;
Then to add a pair to the map:
string str;
pair<map<string,CReport>::iterator, bool> ret =
slips.insert(map<string,CReport>::value_type(str,report));
But this produces a host of error messages that I've included below.
Can't figure these out at all.
Any assistance much appreciated.
Matthew Fleming
mgf@mcw.edu
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(138) : while compiling class-template member function 'bool std::less<_Ty>::operator ()(const _Ty &,const std::string &) const'
with
[
_Ty=std::string
]
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\map(36) : see reference to class template instantiation 'std::less<_Ty>' being compiled
with
[
_Ty=std::string
]
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\xtree(19) : see reference to class template instantiation 'std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,_Mfl>' being compiled
with
[
_Kty=std::string,
_Ty=CReport,
_Pr=std::less<std::string>,
_Alloc=std::allocator<std::pair<const std::string,CReport>>,
_Mfl=false
]
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\xtree(61) : see reference to class template instantiation 'std::_Tree_nod<_Traits>' being compiled
with
[
_Traits=std::_Tmap_traits<std::string,CReport,std::less<std::string>,std::allocator<std::pair<const std::string,CReport>>,false>
]
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\xtree(83) : see reference to class template instantiation 'std::_Tree_ptr<_Traits>' being compiled
with
[
_Traits=std::_Tmap_traits<std::string,CReport,std::less<std::string>,std::allocator<std::pair<const std::string,CReport>>,false>
]
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\xtree(101) : see reference to class template instantiation 'std::_Tree_val<_Traits>' being compiled
with
[
_Traits=std::_Tmap_traits<std::string,CReport,std::less<std::string>,std::allocator<std::pair<const std::string,CReport>>,false>
]
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\map(77) : see reference to class template instantiation 'std::_Tree<_Traits>' being compiled
with
[
_Traits=std::_Tmap_traits<std::string,CReport,std::less<std::string>,std::allocator<std::pair<const std::string,CReport>>,false>
]
c:\Palm\dpCold\DpCGenCond.cpp(201) : see reference to class template instantiation 'std::map<_Kty,_Ty,_Pr,_Alloc>' being compiled
with
[
_Kty=std::string,
_Ty=CReport,
_Pr=std::less<std::string>,
_Alloc=std::allocator<std::pair<const std::string,CReport>>
]
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::list<_Ty,_Alloc> &,const std::list<_Ty,_Alloc> &)' : could not deduce template argument for 'const std::list<_Ty,_Ax> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::list<_Ty,_Alloc> &,const std::list<_Ty,_Alloc> &)' : could not deduce template argument for 'const std::list<_Ty,_Ax> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::list<_Ty,_Alloc> &,const std::list<_Ty,_Alloc> &)' : could not deduce template argument for 'const std::list<_Ty,_Ax> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::_Ptrit<_Ty,_Diff,_Pointer2,_Reference2,_Pointer2,_Reference2> &,const std::_Ptrit<_Ty,_Diff,_Pointer,_Reference,_Pointer2,_Reference2> &)' : could not deduce template argument for 'const std::_Ptrit<_Ty,_Diff,_Pointer2,_Reference2,_Pointer2,_Reference2> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::_Ptrit<_Ty,_Diff,_Pointer2,_Reference2,_Pointer2,_Reference2> &,const std::_Ptrit<_Ty,_Diff,_Pointer,_Reference,_Pointer2,_Reference2> &)' : could not deduce template argument for 'const std::_Ptrit<_Ty,_Diff,_Pointer2,_Reference2,_Pointer2,_Reference2> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::_Ptrit<_Ty,_Diff,_Pointer2,_Reference2,_Pointer2,_Reference2> &,const std::_Ptrit<_Ty,_Diff,_Pointer,_Reference,_Pointer2,_Reference2> &)' : could not deduce template argument for 'const std::_Ptrit<_Ty,_Diff,_Pointer2,_Reference2,_Pointer2,_Reference2> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std::pair<_Ty1,_Ty2> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std::pair<_Ty1,_Ty2> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std::pair<_Ty1,_Ty2> &' from 'const std::string'
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\functional(139) : error C2676: binary '<' : 'const std::string' does not define this operator or a conversion to a type acceptable to the predefined operator
|
|
|
|
|