Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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() используешь? )))


Наверх

Титульная страница Поиск, карта сайта Написать письмо