![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача данных в локальной сети [D7, WinXP]
Темный2 © (2007-01-04 15:23:00)Как можно передать/получить данные по локальной сети (String, Integer, Byte - без разницы)?
Ученик чародея (2007-01-04 15:55:00) [1]Открываешь TCP сокет и передаешь данные упакованные в командный протокол
Простейший вариант.
1 - номер команды (4 байта)
2 - длинна команды
3 - данные
Далее на основе CASE номера команды разбираешь данные в опеределенном формате.
из проекта:
Procedure TMailMessage.WriteDateTimeToStream(var MStr:TMemoryStream;DT:TDateTime);
begin
MStr.Write(DT,sizeof(DT));
end;
Procedure TMailMessage.WriteSizeAndStringToStream(var MStr:TMemoryStream;Str:string);
var len:integer;
begin
len:=length(Str);
MStr.Write(len,sizeof(len));
MStr.WriteBuffer(str[1],len);
end;
Procedure TMailMessage.WriteIntToStream(var MStr:TMemoryStream;i:integer);
begin
MStr.Write(i,sizeof(i));
end;
function TMailMessage.ReadIntFromStream(var MStr:TMemoryStream):integer;
begin
MStr.Read(Result,sizeof(Result));
end;
function TMailMessage.ReadDateTimeFromStream(var MStr:TMemoryStream):TDateTime;
begin
MStr.Read(Result,sizeof(Result));
end;
function TMailMessage.ReadSizedStringFromStream(var MStr:TMemoryStream):string;
var len:integer;
var lstr:string;
begin
MStr.Read(len,sizeof(len));
SetLength(lstr,len);
MStr.ReadBuffer(lstr[1],len);
Result:=lstr;
end;