Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.11.2010, 15:35   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию TClientSocket и TServerSocket

Вот есть такое....
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    ListBox1: TListBox;
    Button2: TButton;
    ClientSocket1: TClientSocket;
    ServerSocket1: TServerSocket;
    procedure ServerSocket1ClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocket1ClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocket1Disconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  sc:Boolean = False;

implementation

{$R *.dfm}

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
      Caption:='Соединение установлено';
      sc:=True;
end;

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
      Caption:='Соединение разорвано';
      sc:=False;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
      Caption:='Соединение установлено';
      sc:=True;
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
      Caption:='Соединение разорвано';
      sc:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
      ClientSocket1.Address:=Edit1.Text;
      ClientSocket1.Active:=True;
      Edit2.SetFocus;
      Edit1.ReadOnly:=True;
      Button2.Enabled:=False;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
      ServerSocket1.Active:=True;
      Caption:='Ожидание...';
      Edit2.Text:='';
      Edit1.ReadOnly:=True;
      Button1.Enabled:=False;
end;

procedure TForm1.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
      If Key = VK_RETURN Then
      Begin
            ListBox1.Items.Add(Edit2.Text);
            If sc Then
            ServerSocket1.Socket.Connections[0].SendText(Edit2.Text)
            Else ClientSocket1.Socket.SendText(Edit2.Text);
            Edit2.Text:='';
      End;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
      ListBox1.Items.Add(Socket.ReceiveText);
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
      ListBox1.Items.Add(Socket.ReceiveText);
end;

end.
Собсна, где здесь ошибки?
_-Re@l-_ вне форума
Старый 29.11.2010, 15:48   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ладно, я выяснил - ошибок нет.
Но вот теперь такая проблема. Я с другом решил опробовать эту программку. Всё нормально соединяется. Я ввожу текст сообщения в Edit2, отправляю и оно нормально доходит до меня. Однако, когда то же самое пытается сделать мой друг, то у него возникает ошибка Listindex out of Bounds (ну или как-то так). В чём дело?

Последний раз редактировалось _-Re@l-_; 29.11.2010 в 16:09.
_-Re@l-_ вне форума
Старый 29.11.2010, 16:22   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Читаем правила.
Одна тема - один вопрос.
И пожалуйста, перечитайте правила раздела - они изменились.
Постарайтесь следующей теме дать более осмысленное название.
Такое, как у этой, я однозначно забракую.

Последний раз редактировалось mihali4; 29.11.2010 в 16:43.
mihali4 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TServerSocket и TClientSocket grafgrial Общие вопросы Delphi 3 25.08.2010 15:15
TServerSocket, TClientSocket prod87 Работа с сетью в Delphi 7 26.10.2009 22:38
проблема с TServerSocket и с TClientSocket DOLBY Работа с сетью в Delphi 56 14.01.2008 16:12
Проблема с TClientSocket, TServerSocket PLOT_HD Работа с сетью в Delphi 4 11.08.2007 17:03