Форум: "Сети";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
Внизкак получить инфу с сервера и вставить в клиент? Найти похожие ветки
← →
BOBAKO (2002-12-24 20:39) [0]Воообщем вопрос в том чтобы получить имя Юзера с сервера и отправит его
на клиент и поместить в лабел1
код получения имени есть теперь не могли бы вы мне описать подробно как полученную инфу пихнуть в лабел1 в клиенте?
var osvi: TOSVersionInfo; si: TSystemInfo;
s:string;
dwResult, nsize: Cardinal;
ch : array[0..1000] of Char;
Бегин
GetUserName(ch, nsize);
ЕНД;
Помогите пожалусто если можно подробно...
Зарание благодарен спасибо!
← →
BOBAKO (2002-12-25 20:25) [1]что народ ник то что ли не знает или лень помогать начинающим а?
← →
Digitman (2002-12-26 13:05) [2]А что тебе непонятно ? Конкретно ?
← →
BOBAKO (2002-12-27 10:44) [3]Ну я уже анписал что мне не понятно вот это имеено как осущиствить прочитай что я писал!
← →
Reindeer Moss Eater (2002-12-27 10:53) [4]код получения имени есть теперь не могли бы вы мне описать подробно как полученную инфу пихнуть в лабел1 в клиенте?
Label1.Caption:=<Полученная инфа>;
← →
BOBAKO (2002-12-28 10:18) [5]насчёт caption мне понятно а как организовать Полученная инфа что написать
вместо Полученная инфва мне вот эта самое валнует!
помогите пожалуста!
← →
BOBAKO (2002-12-30 20:15) [6]ну МОГИТЕ ЖЕ НАРОД ИЛИ СТАТЬЮ ДАЙТЕ ПОЧИТАТЬ ПО ЭТОМУ ПОВОДУ ЧТОБ ПОДРОБНО
КАК МНЕ ВПИСАТЬ ПОЛУЧЕННУЮ ИНФУ В ЛАБЕЛ НА СЕРВЕРЕ?
← →
Digitman (2002-12-31 08:49) [7]
> пихнуть в лабел1 в клиенте?
> ВПИСАТЬ ПОЛУЧЕННУЮ ИНФУ В ЛАБЕЛ НА СЕРВЕРЕ
Все-то тебе "пихнуть" да "вписать")
А чем, собственно, сервер от клиента отличается в этом случае ? Да ничем !)
Есть просто два хоста, в каждый момент времени один из них явл-ся "передатчиком", другой - "приемником" информации. Кто из них в данный момент времени является "сервером", а кто "клиентом" - по барабану (логика установления коннекта между хостами тебе, видимо, известна и не интересует в контексте вопроса)
"Передачтик" выполняет sendbuf(ch, sizeof(ch)), "приемник" - receivebuf(ch, sizeof(ch))-функции. В результате успешной (!) передачи/приема в АП процесса-"приемника" появится заполненная копия структуры ch, с которой ты можешь делать все, что угодно - хоть в "лабел пихать", хоть "не в лабел", хоть "не пихать" вообще (таки советую не "пихать" что-то куда-то, а обрабатывать полученную инф-цию)
← →
BOBAKO (2003-01-02 22:04) [8]Digitman
А как это будет выглядетьв моём случае?
← →
BOBAKO (2003-01-03 21:35) [9]вот код из сервера:
if ch = "25" then
begin
serversocket1.Socket.SendBuf();
end;
вот здесь у меня мозги откл вообще что дальше если код получения инфы такой:
var osvi: TOSVersionInfo; si: TSystemInfo;
s:string;
dwResult, nsize: Cardinal;
ch : array[0..1000] of Char;
begin
GetComputerName(ch, nsize);
Label1.Caption:="Компьютер: "+ch;
помогите пожалусто разобраться и понять!
← →
Reindeer Moss Eater (2003-01-04 09:06) [10]
var ch : array[0..MAX_COMPUTERNAME_LENGTH] of Char;
nSize: DWord;
begin
nSize:=Succ(MAX_COMPUTERNAME_LENGTH);
GetComputerName(ch,nSize);
Caption:="Компьютер: " + StrPas(ch);
end;
← →
BOBAKO (2003-01-04 15:01) [11]нет это я получаю имя своей машины а как получить имя машины на которой установлен сервер:
что тогда надо написать в сервере раз в клинте:
procedure TForm5.fcShapeBtn1Click(Sender: TObject);
var ch : array[0..MAX_COMPUTERNAME_LENGTH] of Char;
nSize: DWord;
begin
form1.lmdWavecomp4.Play;
nSize:=Succ(MAX_COMPUTERNAME_LENGTH);
GetComputerName(ch,nSize);
label2.Caption:="Имя компьютера: " + StrPas(ch);
end;
Пасиба,жду ответов!
← →
Reindeer Moss Eater (2003-01-04 15:06) [12]нет это я получаю имя своей машины а как получить имя машины на которой установлен сервер:
Выполнить этот код на машине, на которой установлен сервер
← →
BOBAKO (2003-01-04 15:09) [13]ну выполню но как мне его с сервера взять и запихнуть в лабел на Клиенте вот в чём вопрос!
обьясните пожалусто.
← →
Reindeer Moss Eater (2003-01-04 15:13) [14]Получи на сервере. Передай на клиента. На клиенте прими и присвой свойству Caption/
← →
BOBAKO (2003-01-04 15:56) [15]Получи на сервере. Передай на клиента. На клиенте прими и присвой свойству Caption/
----------
Вот прошу тебе обьясни мне как это сделать пожалусто,если можно подробнее.
Зарание благодарен.
← →
Reindeer Moss Eater (2003-01-04 16:02) [16]как это сделать
Это можно сделать примерно тремя миллионами способов.
У тебя как сервер с клиентом общаются? Посредством чего?
← →
BOBAKO (2003-01-04 16:17) [17]ну не знаю ща приведу несколько наименнований:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
ch := Socket.ReceiveText;
***
end;
это из сервера работает всё на стандартыных компонентах в кладке интернет...
если ещё что то надо напиши посмотрю...
И спасибо,за то что помогаешь!
← →
BOBAKO (2003-01-05 12:42) [18]Помошь закончилась? :(
← →
Be$ (2003-01-06 13:33) [19]Чтобы твой клиент понял, что ему пришла какая-то конкретная информация (в твоем случае имя компа ли юзера) ему нужно в этом помочь. Для этого сервер должен будет отсылать не только саму полученную инфу, но и "название" её. Например:
ServerSocket1.Socket.Connections[0].SendText("Comp;"+Compname);
где Compname- результат функции определения имени компа.
Код функции на всякий пожарный напишу :)
function CompName: string;
var Size : cardinal;
pName : PChar;
BRes : boolean;
begin
Size := MAX_COMPUTERNAME_LENGTH + 1;
pName := StrAlloc(Size);
BRes := GetComputerName(pName, Size);
if BRes then
result:= StrPas(pName);
end;
Так вот...имя получили...вроде как отослали(с подсказкой-
"Comp"). :)) Теперь дело за малым: принять и обработать енто на клиенте.
Для этого пишем функцию определения "названиния"
полученной инфы. Она имеет очень сложный код, поэтому привожу его полностью :)
function InfoName(TextFromServer:string): string;
begin
Result:=Copy(TextFromServer,1,pos(";",TextFromServer)-1);
end;
Эта функция и выделит из всего хлама "название" инфы то бишь
нужное "Comp" и клиент прочитав его присвоет имя компа в желаемое место:
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
s:string;
begin
s:=Socket.ReceiveText;
...
if InfoName(s)= "Comp" then Label1.Caption:=s;
...
end;
Правда в Label1 попадет и само "Comp" но потрудись уже сам от этого избавиться. Это элементарно.
← →
Cobalt (2003-01-06 20:53) [20]В общем, разрабатывай протокол обмена.
1) Выясняешь, чем у тебя будут обмениваться клиент и сервер
2) придумываешь для каждого типа операций код (1, 2, 3, 4 и т.д.)
3) пишешь структуры с объединениями, типа такого:
TMyRec = {packed?} record
и
TypeOfBuf: word; // Код данных, поясняющий, что ты пересылаешь
case TypeOfBuf of
1: s1: array[1..255] of char; //Name of Comp of Server
2: s2: array[1..255] of char; //Name of Comp of Client
3: t: TDateTime;
...
end;
end;
4) обмениваешься ими, и только ими.
При приеме читаешь данные в переменную того же типа (TMyRec), проверяешь код операции
(case TypeOfBuf of
......)
и - have FUN ^__^
← →
BOBAKO (2003-01-07 18:50) [21]вроде бы тупые мои мозги заводятся а что теперь написать в
button.onclick*****
begin
если кнопка эта находитс на форме 5 и ламбел тамже а слиенть на первой форме?
← →
BOBAKO (2003-01-08 18:27) [22]ну народ осталось не много помогите.
← →
C#KA (2003-01-09 09:39) [23]УУУ...
BOBAKO пришли мне прогу а я поправлю
E-mail C#KA@PROST.RU
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.009 c