Сети и Интернет
// Для того чтобы послать сообщение компьютеру в локальной сети
// напишите следующие функции:
bool SendNetMessage(AnsiString Komp, AnsiString Mes)
{
AnsiString From;
char CompName[10];
DWORD size=10;
//Откуда
if(!GetComputerName(CompName,&size)) return false;
From=CompName;
if(Mes.Length()==0) return false;
HANDLE hSlot = CreateFile(("\\\\"+Komp+"\\mailslot\\messngr").c_str(),
GENERIC_WRITE, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hSlot == INVALID_HANDLE_VALUE) return false;
DWORD cb=0;
BOOL ret;
char *buf=new char[From.Length()+1+Komp.Length()+1+Mes.Length()+1];
//1. From
memcpy(&buf[cb],From.c_str(),From.Length()+1);
cb +=From.Length()+1; //+1 на конце должен быть 0
//2. To
memcpy(&buf[cb],Komp.c_str(),Komp.Length()+1);
cb +=Komp.Length()+1;
//3. Само сообщение
memcpy(&buf[cb],Mes.c_str(),Mes.Length()+1);
cb +=Mes.Length()+1;
//ConvertToDos
CharToOemBuff(buf,buf,cb);
ret=WriteFile(hSlot, buf,cb, &cb, NULL);
CloseHandle(hSlot);
delete[] buf;
if(!ret) return false;
return true;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Komp,Mes;
//Кому
Komp=Edit1->Text; //Имя компьютера
//Сообщение
Mes=Edit2->Text; //Message
bool ret;
int Kol=UpDown1->Position;
for(int i=1;i
{
ret=SendNetMessage(Komp,Mes);
}
}
// напишите следующуй код:
NMHTTP1->InputFileMode=true;
NMHTTP1->Get(" http://www.xxx.ru/pic.gif");
NMHTTP1->Body="pic.gif"; //на винт скинуть
// напишите следующуй код:
#include <winsock.h>
#include <stdio.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(1, 0);
int err = WSAStartup(wVersionRequested, &wsaData);
if(err == 0)
{
char hn[1024];
struct hostent *adr;
if(gethostname((char *)&hn, 1024))
{
int err = WSAGetLastError();
Beep();
};
adr = gethostbyname(hn);
if(adr)
{
char *LocalIp = new char[15];
sprintf(LocalIp,"%d.%d.%d.%d",
(unsigned char)adr->h_addr_list[0][0],
(unsigned char)adr->h_addr_list[0][1],
(unsigned char)adr->h_addr_list[0][2],
(unsigned char)adr->h_addr_list[0][3]);
Label1->Caption=LocalIp; //Выводим IP адрес
}
}
}
// напишите следующуй код:
#include <winsock.h>
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(1, 0);
int err = WSAStartup(wVersionRequested, &wsaData);
if(err == 0)
{
char name[1024];
if(gethostname((char *)&name, 1024))
{
int err = WSAGetLastError();
Beep();
};
Label1->Caption=name; //выводим имя
}