如何IdTCPClient使用?
我想用delphi中的IdTCPClient控件与VC++所编写的SERVER程序进行通讯,但我刚学会DELPHI,很多控件不会用。请问如何才能通过此控件与VC++所编写的SERVER程序通讯。
vc++所编写的SERVER程序如下:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
HRESULT hr;
void CServersocketDlg::OnListen()
{
if(!strsetup)
setup();
strsetup=1;
if(m_sock!=NULL)
{
closesocket(m_sock);
m_sock=NULL;
}
UpdateData(TRUE);
m_sock = socket(AF_INET,SOCK_STREAM,0);
if (m_sock == INVALID_SOCKET)
{
errnum=WSAGetLastError();
MessageBox("socket() failed", "Error", MB_OK);
closesocket(sock);
return;
}
local_sin.sin_family = AF_INET;
local_sin.sin_addr.S_un.S_addr = INADDR_ANY;
local_sin.sin_port= m_port;
if (bind(m_sock, (struct sockaddr FAR *) &local_sin, sizeof(local_sin)) == SOCKET_ERROR)
{
errnum=WSAGetLastError();
UpdateData(FALSE);
return;
}
if (listen(m_sock,1) < 0)
{
sprintf(szBuff, "%d is the error", WSAGetLastError());
MessageBox(szBuff, "listen(m_sock) failed", MB_OK);
return;
}
else
{
SetTimer(1,2000,NULL);
}
}
void CServersocketDlg::OnTimer(UINT nIDEvent)
{
char rev[20];
int status;
int strmsg=0;
int flag;
status = recv( sock, rev, 20, 0 );
if (status == SOCKET_ERROR)
{
//wsprintf(rev, "Error %d", WSAGetLastError());
//MessageBox(rev, "Error with recv()", MB_OK);
}
rev[status] = '\0';
m_rev=rev;
UpdateData(FALSE);
acc_sin_len = sizeof(acc_sin);
sock = accept(m_sock,(struct sockaddr FAR *) &acc_sin,(int FAR *) &acc_sin_len );
if (sock < 0)
{
sprintf(szBuff, "%d is the error", WSAGetLastError());
MessageBox(szBuff, "accept(sock) failed", MB_OK);
return;
}
CDialog::OnTimer(nIDEvent);
}