|
hello everyone. i am building an FTP client to upload files on to an FTP server. my ftp client can create a folder, upload files and almost does everything when connected to local server. in fact, the code works fine with the local server. but when a remote server is used, my ftp client cannot upload files on to the server. the directory listing also cant be obtained. can anyone help?? its urgent..
thanks..
vijay aroli
|
|
|
|
|
Hello vijay,
I m not sure but I think it is problem due to Firewall or NAT.
regards,
Divyang Mithaiwala
System Engineer & Software Developer
|
|
|
|
|
thank u for replying to me. can u tell me how can i find what the exact problem? the code works fine for the local server and fails for the remote server. plz, its urgent..
|
|
|
|
|
hi!! thanks to everyone. the problem has been solved. the problem was that i was using Active mode of transmission for the connection rather than Passive mode. i changed the connection to passive mode and the code worked fine for the remote server too. i again thank everyone.
|
|
|
|
|
THis code compiles ok when i click priceqoute botton it display request id but when it comes to
next it give a erreor message "invalid market no",and "invalid amount"
Can anybody suggest me how to come out of this....should i change the variable type or what...
<br />
void CWartz_newDlg::OnBpricequote() <br />
{<br />
int pageno(0);<br />
requestid=m_arielapi.RequestPrices(sessionid,pageno);<br />
CString displaydata;<br />
displaydata.Format(_T("==>Request ID [%s]"),requestid);<br />
LOG(0,displaydata); <br />
<br />
BOOL bSuccess=FALSE;<br />
<br />
for(int n=0;n<3;n++)<br />
{<br />
if(requestid)<br />
{<br />
bSuccess=TRUE;<br />
break;<br />
}<br />
}<br />
if(bSuccess)<br />
{<br />
long marketno=0;<br />
CString amount;<br />
short tradetype=0;<br />
CString exchange,account,clientref;<br />
<br />
<br />
m_arielapi.RequestQuote(sessionid,marketno,amount,tradetype,exchange,account,clientref);<br />
CString cstrDisplayData;<br />
<br />
cstrDisplayData.Format(_T("==>[%s][%s][%s][%s][%s][%s][%s]"),sessionid,marketno,amount,tradetype,exchange,account,clientref);<br />
LOG(0,cstrDisplayData);<br />
}<br />
<br />
}<br />
-- modified at 0:20 Thursday 17th August, 2006
|
|
|
|
|
What is it and wheres error?
|
|
|
|
|
this function having the problem.
m_arielapi.RequestQuote(sessionid,marketno,amount,tradetype,exchange,account,clientref);
the error is it it is showing "Invalid Market no." etc...
seems some problems with the comparison routine.
|
|
|
|
|
Its not sufficient for answer,right?he needs to say detaily
|
|
|
|
|
|
priyanka s wrote: m_arielapi.RequestQuote(sessionid,marketno,amount,tradetype,exchange,account,clientref);
hi Priyanka,
we dont know what's the implementation of the RequestQuote function. then how we could predict the output.
check comparison statements inside the function.
can't you debug the code?
|
|
|
|
|
hello sorry may be my explanation is not very clear...
I am able to debug there is no error while run time,ihave button to connect to remote server and when it connect to server it gives me session id .
And when i click requestqoute button it should give me the qoute.But here it comes a msgbox that "invalid market no","invalid amount"
THIS IS FUNCTION DECLARATION
<br />
CString CArielAPI::RequestQuote(LPCTSTR SessionId, long MarketNo, LPCTSTR Amount, short TradeType, LPCTSTR Exchange, LPCTSTR Account, LPCTSTR ClientRef)<br />
{<br />
CString result;<br />
static BYTE parms[] =<br />
VTS_BSTR VTS_I4 VTS_BSTR VTS_I2 VTS_BSTR VTS_BSTR VTS_BSTR;<br />
InvokeHelper(0x5, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,<br />
SessionId, MarketNo, Amount, TradeType, Exchange, Account, ClientRef);<br />
return result;<br />
}<br />
THANKS
|
|
|
|
|
ok.
but the problem is all the decisions are taking inside the function which you are invoking... it's just passing the values after converting to BSTR.
so how could I make a raw assumption?
is the same code working witht some other modules? i.e the interface call?
|
|
|
|
|
I used VC++ 6.0 to make wmi program ,why the flowing err (Windows2003 CN + SP1)
I searched the answer on internet,google,yahoo,or others,and can't resolved
I had set the include path and lib path "C:\Program Files\Microsoft Platform SDK\Include" and "C:\Program Files\Microsoft Platform SDK\Lib",and make this path first, please help me
--------------------Configuration: wmi - Win32 Debug--------------------
Linking...
wbemuuid.lib : warning LNK4003: invalid library format; library ignored
wbemuuid.lib : warning LNK4003: invalid library format; library ignored
wmi.obj : error LNK2001: unresolved external symbol _CLSID_WbemLocator
wmi.obj : error LNK2001: unresolved external symbol _IID_IWbemLocator
Debug/wmi.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.
wmi.exe - 1 error(s), 0 warning(s)
--------------------------------code---------------------------------------
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <windows.h>
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
int main()
{
IWbemLocator *pLoc = 0;
HRESULT hr;
hr = CoCreateInstance(CLSID_WbemLocator, 0,
CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc);
if (FAILED(hr))
{
cout << "Failed to create IWbemLocator object. Err code = 0x"
<< hex << hr << endl;
CoUninitialize();
return hr; // Program has failed.
}
IWbemServices *pSvc = 0;
// Connect to the root\default namespace with the current user.
hr = pLoc->ConnectServer(
BSTR(L"ROOT\\DEFAULT"),
NULL, NULL, 0, NULL, 0, 0, &pSvc);
if (FAILED(hr))
{
cout << "Could not connect. Error code = 0x"
<< hex << hr << endl;
pLoc->Release();
CoUninitialize();
return hr; // Program has failed.
}
cout << "Connected to WMI" << endl;
return 0;
}
--------------------------------------------------code----------------------------------------------
|
|
|
|
|
I compile this code without change default prj setting and any err don't occur .
|
|
|
|
|
baicker wrote: Windows2003 CN + SP1
I think the last PSDK that was compatible with VC6 was the Windows Server 2003 PSDK released in Feb 2003.
|
|
|
|
|
|
I had resolved it
thank you all
|
|
|
|
|
Is there any way to discard Named Pipes still open on a Pipe Client App, after the Server dies for some reason, but Multiple Clients still hold Open File handles to their end of the Named Pipe. On my version of XP and VCPP 5.00, the server refuses to create a new Named pipe instance, as long as any of the Client Processes have even only one pipe instance by the name open! This means a Physical run around the equipment in the building to close it down! I do not expect to pick up the open client pipes, but would like at least the Server to be able to restart, and hopefully the opportunity to configure the client software in such way that it recognises that the server has stopped and re-started, and that consequently a re-start of the Client software is appropriate.
regards
LateNightsInNewry
|
|
|
|
|
Not sure, but try right clicking on MyComputer, select "Manage" and then "Shared Folders" and check to see if pipes show up in there. If so, you should be able to right click on each (or the entire group) and perform a "disconnect".
I've only done this with locked files on shares but it's worth a shot.
|
|
|
|
|
Yes, Know that one, but does not work here, you get a message of no access to remote file! anyways, I meant something under program controll, i.e without user intervention.
Thanks anyways
LateNightsInNewry
|
|
|
|
|
I'm building in Microsoft Visual Studio 2003, using C++ (so, it's v 7.1).
Here is my scenario, consider each situation be repeated ad infinitum:
Child thread performs "new A", parent thread performs "delete A" - no problem.
Parent thread performs "new B", child thread performs "delete B" - virtual memory grows uncontrollably over time, consuming my computer in an almost fiery death. The working set grows and gets trimmed over time as would be expected.
Some additional clarification - I can actually watch the VM size increase and decrease in the first situation (using both Task Manager and PerfMon). It appears to monotonically increase in the second situation. I'm just baffled why virtual memory is contained going the first direction, but not the second.
Any ideas?
|
|
|
|
|
Maybe it is spawning lots of threads? That would consume system resources as it is on the O/S level that manages this.
VM are not usually the problem in MT programs - usually it is odd crashes, when some var is not properly locked or we've screwed up some syncronization.
A cynic is a man who, when he smells flowers, looks around for a coffin. -H.L. Mencken
|
|
|
|
|
Your Problem is somewhat incomprehensible. Give us some actual (tested) code.
Virtual memory is not something you have control over or should be concerned about! Your program only allocates memory! The operating system decides which part of all memory used should be virtual, your program has no control over that. If your monitor gives a sudden and sharp increase in virtual memory usage untill death, that means invariably that you ended up in an endless loop allocating memory. This has nothng to do with virtual memory anagement! Investigate all for, do,while loops in which memory is (indirectly) (m)allocate(d) Thats where the problem is!
Hint:
Debugging can be troublesome for beginners like me, but here'se a start
Put in the Header File: (Best in stdafx.h, at the bottom)
#define malloc(x) MyMalloc((x),__LINE__,__FILE__)
and write a function:-
void* MyMalloc(size_t Size,int LineNr,LPCSTR FileName){
CString Msg;
Msg.Format("malloc(%i) in File:%s, Line %i\n",FileName,LineNr);
size_t StrLen=Msg.GetLength();
size_t BufSize=StrLen+1>Size ?StrLen+1:Size;
void* pRes=malloc(BufSize+255);
if(pRes==NULL)return NULL:
strcpy(pRes,(LPCSTR)Msg);
return pRes;
}
Avoid writing anything to the objects you Use
Compile and Run the Program, when it dies, it gives a trace log in the bottom of the screen, of all blocks not freed"
Take it from there
LateNightsInNewry
|
|
|
|
|
N.B Its obvious, but before the above function, write:
#undef malloc. Else you have an Endless Loop in itself(think)
Also, write a similar function for calloc,new, etc
success
LateNightsInNewry
|
|
|
|
|
Disregard the question. I found my problem. It was an actual memory leak, due to lack of a call to delete in one unique case that wasn't being handled. Rookie mistake, my bad.
|
|
|
|
|