WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Как в C++ Builder'е узнать имя хоста

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Как в C++ Builder'е узнать имя хоста
Del опубликован 28-05-2001 19:31 MSK   Click Here to See the Profile for Del   Click Here to Email Del  
Я пишу на C++ Builder'е чат для локалы. Всё приколно, но я не знаю как сделать так, чтоб прога сама узнавала сетевое имя копма, на котором она запушена. Приходиться просить юзера ввести свой хост - а это suxx. Кто может дать дельный совет - please дайте его.
DEiL опубликован 29-05-2001 01:05 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
8-[ ]
ээ... либо я чего-то не понимаю, либо... :)
TForm1::OnClientConnect(<..>)
{
<..>
AnsiString MyAddr = Socket.LocalHost;
AnsiString MyIP = Socket.LocalAddress;
AnsiString HisAddre = Socket.RemoteHost;
AnsiString HisIP = Socket.RemoteAddress;
};
пишу по памяти, так что :))
Del опубликован 12-06-2001 18:42 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Ты непонял:-) Я только начинаю кодить на С++ и потому и юзаю С++Builder. Я пишу чат
не через голый API, а юзая VCL (да,да,да! -
но новичкам простительно ;-)
Юзаються компоненты с FastNet'a:
для отправки: TNMMsg *NMMsg1
для приёма : TNMMSGServ *NMMSGServ1;
Как узнать имя компа на котором запустилься чат с их помощью (если через API,
то если не в падлу, плиз, напиши весь код).
Если пригодиться привожу пример отправки:
NMMsg1->Host = "comp-1";
NMMsg1->FromName = "comp-2";
NMMsg1->PostIt("Hi!");
и приёма:
void __fastcall TfmMain::NMMSGServ1MSG(TComponent *Sender,const AnsiString sFrom, const AnsiString sMsg)
{
Memo1->Lines->Add(sMsg);
}
ну это в примитивном варианте - я сам конечно
вывожу покрасивее да и отправляю отдельной функцией с параметрами.
Susik опубликован 13-06-2001 13:24 MSK     Click Here to See the Profile for Susik  Click Here to Email Susik     
Удобнее было бы юзать компоненты TClientSocket и TServerSocket. Как раз товарищ перед этим на это и намекал... :))
Del опубликован 13-06-2001 13:44 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Так TNMMsg и TNMMSGServ имеют удобный параметр - sFrom - от кого пришла мессага, а юзая ClientSocket и ServerSocket пришлось бы наредкость извратиться, чтоб передать ник (или имя хоста) того кто послал мессагу, вмесьте с самой мессагой.
Susik опубликован 13-06-2001 16:15 MSK     Click Here to See the Profile for Susik  Click Here to Email Susik     
Так а ты посылай вместе с мессагой. Пихай прям в начало мессаги свое имя/ник/хост - что угодно! И там после него какой-нить управляющий символ. Если хошь, я набилдере в свое время делал чат на этих 2 компонентах, причем, получилась многосерверная и одновременно многоклиентская система, тестировал в школе :). Там я ник в начало мессаги пихал, к в чате, а после него - двоеточие и мессагу.
Del опубликован 14-06-2001 10:03 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Так тоже можно, но с FastNet'oм правда проще:-) А вообше это мысль насчёт Socket'ов.
Насколько я понял, хост узнаёться из свойств TClientSocket'a или TServerSocket'a, но я не уверен, что правильно понял как именно он узнаёться. Напиши кусок кода плиз.
ЗЫ: Если не жалко скинь мне на мыло сорцы твоего чата mailto:del@xakep.ru
webmaster опубликован 14-06-2001 11:45 MSK     Click Here to See the Profile for webmaster  Click Here to Email webmaster     
на чём бы ты не кодил, но если хочешь делать сетевые программки, то неплохо бы представлять себе такие функции как socket, bind, listen, accept, send, receive. А пока не поймёшь как они работают - будешь постоянно испытывать подобные трудности ..

IMHO это моё мнение :)

Del опубликован 18-06-2001 13:33 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Дык, я что буду летом делать? Я ж и буду FAQ'и читать. Просто я только начал на сях кодить...

Susik >> thanks за сорцы, посмотрю...

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.