Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.27;
Скачать: CL | DM;

Вниз

как получить инфу с сервера и вставить в клиент?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.02 c
3-87290
mUTant
2003-02-05 23:35
2003.02.27
Как запустить программу на машине на которой не установлен Parado


4-87747
pirat
2003-01-13 17:08
2003.02.27
Что послать чтобы развернуть/свернуть окно?


8-87575
trotski
2002-11-13 21:29
2003.02.27
помощь по DelphiX


1-87503
Andrey_S
2003-02-13 17:14
2003.02.27
Кнопки как в FrontPage слева


1-87383
msgipss
2003-02-17 20:36
2003.02.27
Помогите найти глюкв коде, что то глаз замылился, не могу понять