![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Sokcet
Filya © (2004-08-09 16:35:00)Мастера подскажите. Я отправляю с клиента строку "asd", а на сервере получаю какуюто ерунду использую функция write().
Filya (2004-08-10 09:14:00) [1]Еще раз спасибо.
Digitman (2004-08-09 18:34:00) [2]
> Filya (09.08.04 18:28) [18]
лучшее "начало" - с теории
залезь, скажем, сюда
http://book.itep.ru разделы "Протокол TCP/IP", "Winsock"
и не вылазь оттуда до полного просветления
а исх.тексты TClient/Serversocket (scktcomp.pas) будут тебе путеводной звездой
Filya (2004-08-09 18:28:00) [3]Ну а тебе спосибо за учение.
Если можно дай ссылку на нормальные статьй по сокетам, конечно если таковые имеются.
Digitman (2004-08-09 18:22:00) [4]оххх ... увидеть бы этого Кариха ! да сказать о его "творчестве" все что думается ...
Filya (2004-08-09 18:00:00) [5]Дам ссылку:
http://www.delphimaster.ru/articles/sockets/index.html
http://www.delphimaster.ru/articles/socksrv/index.html
Так что я говорю не на пустом месте.
Digitman (2004-08-09 17:55:00) [6]
> Filya (09.08.04 17:52) [14]
> в исходных так и написано
нет таких "исходников" .. и быть не может. потому что это - бред
и не выдумывай
Filya (2004-08-09 17:52:00) [7]в исходных так и написано :-((
цитата с исходника:
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
var c: Char;
MySocket: TWinSocketStream;
login,password: string;
begin
MySocket := TWinSocketStream.Create(Socket,60000);
{Добавляем к логину и паролю символ перевода строки, чтобы сервер смог отделить логин и пароль.}
login := Edit3.Text;
password := Edit4.Text;
MySocket.Write(login,Length(Edit3.Text));
MySocket.Write(password,Length(Edit4.Text));
while not MySocket.WaitForData(100) do
Application.ProcessMessages;
MySocket.Read(c,1);
{Здесь сервер посылает нам один байт, значение 1 которого соответствует подтверждению успешной авторизации, а 0 - ошибку (это лишь пример). Далее мы выполняем нужные действия (прием/пересылку данных) и закрываем поток.}
MySocket.Free;
end;
Digitman (2004-08-09 17:47:00) [8]
> Filya (09.08.04 17:44) [12]
а исх.тексты зачем ?
Filya (2004-08-09 17:44:00) [9]че все так запущенно :-))
ну вот с "WriteBuffer(PChar(login)^" этим я уже разобрался.
Ну может мои вопросы и глупы, но надо ведь когдато в этом разобратся.
Digitman (2004-08-09 17:38:00) [10]о боже !
Filya (2004-08-09 17:35:00) [11]Освобождаю объект.
Вобще пример написан на основе статьй "Программирование серверов на основе сокетов в Дельфи" и "Программирование сокетов в Дельфи". Потому как возникла необходимость.
Digitman (2004-08-09 17:31:00) [12]
> Filya (09.08.04 17:28) [8]
в 2-х словах это описано в любом букваре по ОbjectPascal'ю ....
+ исх.тексты
Filya (2004-08-09 17:28:00) [13]> Digitman © (09.08.04 17:21) [6]
Спасибо. Помогло. Если можно в двух словах из-за чего это.
Digitman (2004-08-09 17:23:00) [14]
> MySocket.Free
а это что за хрень ?!
Digitman (2004-08-09 17:21:00) [15]MySocket.Write Buffer( PChar(login )^, length(login));
MySocket.Write Buffer( PChar(password )^, length(password));
!!
Filya (2004-08-09 17:15:00) [16]Прошу прощения за неполную информацию.
Код:
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
var c: Char;
MySocket: TWinSocketStream;
login,password: string;
begin
MySocket:= TWinSocketStream.Create(Socket, 6000);
login:=edit4.Text+'#10';
password:=edit5.Text+'#10';
MySocket.Write(login, length(login));
MySocket.Write(password, length(password));
memo1.Lines.Insert(0, BoolToStr(ClientSocket1.Active));
StatusBar1.Panels[0].Text:='Соединение установленно';
MySocket.Free;
end;
Digitman (2004-08-09 17:09:00) [17]
> Filya (09.08.04 17:05) [3]
Филь, а Филь .. ты эт .. серьезно что ли ?
Просвети нас, яйцеголовых, write() это метод какого класса ?
Filya (2004-08-09 17:05:00) [18]Все вам хиханьки да хаханьки :-))
Код на стороне клиента:
login:=edit4.Text+#10;
password:=edit5.Text+#10;
MySocket.Write(login, length(login));
MySocket.Write(password, length(password));
Код на стороне сервера:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Lines.Insert(0, Socket.ReceiveText);
end;
Digitman (2004-08-09 16:51:00) [19]
> отправляю с клиента строку "asd", а на сервере получаю какуюто
> ерунду использую функция write().
продолжай в том же духе
это же так интересно - запутать вражескую разведку
MetalFan (2004-08-09 16:49:00) [20]круто!
а функцию read() используешь? )))