Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.04.2009, 18:09
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию TClientSocket.SendText

помогите, времени нет на поиски, если уже есть такая тема дайте ссылку и удалите эту тему. У меня TClientSocket.SendText почему то через раз отправляет сообщения, подскажите как сделать что0бы всегда отправлял\принимал... я в сетевой части нуппп
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #2  
Старый 08.04.2009, 22:00
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

AleD, слухай, а если ты не разбираешься в сокетах... а это там главное вроде... судя по тому что написано на форуме... и еще 3D координаты - но это для лохов, понятно же. Продолжим, как же ты будешь...?
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 09.04.2009, 06:48
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от Aristarh Dark
AleD, слухай, а если ты не разбираешься в сокетах... а это там главное вроде... судя по тому что написано на форуме... и еще 3D координаты - но это для лохов, понятно же. Продолжим, как же ты будешь...?
Ты момягче давай! Во первых, сокетами занимается PhoeniX, я лишь обрабатываю присланный команды, а во вторых это мне не для этого нужно.
Если ты такой умный то иди и делай ММОRPG с PhoeniX'ом, или сиди и молчи
Я понимаю что ты (ну вы) уже несколько лет кодите, у меня стаж только 2 года, и то до этого только софт делал для самого себя
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;

Последний раз редактировалось AleD, 09.04.2009 в 06:51.
Ответить с цитированием
  #4  
Старый 09.04.2009, 08:41
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Сами спровоцировали человека, ответить в стиле вашего вопроса, а теперь обижаетесь. Меньше воды, больше кода. Телепатов тута нет.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 09.04.2009, 09:17
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от Страдалецъ
Сами спровоцировали человека, ответить в стиле вашего вопроса, а теперь обижаетесь. Меньше воды, больше кода. Телепатов тута нет.
Непонимаю чем я его спровоцировал, и причём тут ваще Russian Online (он про него и говорил, типа в ММО нужно идеально знать сокеты, а я не ими в проекте занимаюсь) хотя вопрос данной темы мне лично нужен, Russian Online сдесь непричём.
Код конечно смотрите:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ScktComp;

type
  TForm1 = class(TForm)
    svSocket: TServerSocket;
    clSocket: TClientSocket;
    mmOutput: TMemo;
    mmInput: TMemo;
    btnSend: TButton;
    Bevel1: TBevel;
    edtHost: TEdit;
    Label1: TLabel;
    procedure mmInputKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure btnSendClick(Sender: TObject);
    procedure svSocketListen(Sender: TObject; Socket: TCustomWinSocket);
    procedure svSocketClientWrite(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure svSocketClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure svSocketClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure svSocketClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure svSocketAccept(Sender: TObject; Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses StrUtils;

{$R *.dfm}

procedure log(s: String);
begin
  Form1.mmOutput.Lines.Add(s);
end;

procedure TForm1.mmInputKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if(ssCtrl in Shift)and(Key=VK_RETURN)then
    btnSend.Click;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  svSocket.Active := true;
  if(svSocket.Socket.Connected)then
    log('Сообщения прослушиваются')
  else
    log('Ошибка инициализации прослушивания');
end;

procedure TForm1.btnSendClick(Sender: TObject);
var
  msg: String;
  t: Cardinal;
Begin
  t := GetTickCount;
  msg := mmInput.Lines.Text;
  clSocket.Host := edtHost.Text;
  try
    clSocket.Active := true;
    if(clSocket.Socket.Connected)then begin
      log(svSocket.Socket.LocalHost+': '+msg);
      clSocket.Socket.SendText('msg:'+msg);
    end;
  finally
    clSocket.Active := false;
    mmInput.Lines.Clear;
    log('SendTime: '+IntToStr(GetTickCount-t)+' ms');
  end;
end;

procedure TForm1.svSocketListen(Sender: TObject; Socket: TCustomWinSocket);
begin
  log('listen: '+Socket.RemoteHost);
end;

procedure TForm1.svSocketClientWrite(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  log('clWrite: '+Socket.RemoteHost);
end;

procedure TForm1.svSocketClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  cmd,msg: String;
begin
  cmd := Socket.ReceiveText;
  msg := AnsiMidStr(cmd,4,length(cmd));
  if(AnsiStartsText('msg:',cmd))then begin
    //message
    log(' ]  '+Socket.RemoteHost+': '+msg);
  end;
end;

procedure TForm1.svSocketClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  log('clConnect: '+Socket.RemoteHost);
end;

procedure TForm1.svSocketClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  log('clDisconnnect: '+Socket.RemoteHost);
end;

procedure TForm1.svSocketAccept(Sender: TObject; Socket: TCustomWinSocket);
var
  s: String;
begin
  log('  ] Message from '+Socket.RemoteHost);
  s := Socket.ReceiveText;
  while s<>'' do begin
    log('     '+s);
    s := Socket.ReceiveText;
  end;
  log('  [------------------------]');
end;

end.
знаю это самое лёгкое, но я впринципе тока вчера занялся изучением сетевой части в Delphi 7
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:07.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025