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

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

Сокеты


sinus ©   (2006-10-03 22:36:00) 

написал простейшую программу которая работает с сокетами, но возникли 2 вопроса:
1. При закрытии программы появляется ошибка "project Project1 raised exeption class EAccessViolation with message Access Violation at address
00000000. ???
2. За что отвечают свойства BlockMode у клиента и сервера ? и как необходимо указать их что бы сервер смог получать данные от нескольких клиентов ?


unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   TcpServer1: TTcpServer;
   TcpClient1: TTcpClient;
   Timer1: TTimer;
   Label1: TLabel;
   procedure FormCreate(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
   procedure TcpServer1Accept(Sender: TObject;
     ClientSocket: TCustomIpClient);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

var
i:integer;

procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;

TcpServer1.LocalHost:='10.0.1.30';
TcpServer1.LocalPort:='1001';
TcpServer1.Active:=True;

TcpClient1.RemoteHost:='10.0.1.30';
TcpClient1.RemotePort:='1001';

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin

//ShowMessage('Timer');
i:=i+1;
If TcpClient1.Connected then TcpClient1.Disconnect;
TcpClient1.Active:=True;
TcpClient1.Sendln(IntToStr(i));
TcpClient1.Close;

end;

procedure TForm1.TcpServer1Accept(Sender: TObject;
 ClientSocket: TCustomIpClient);
Var
Str:String;
begin
Str:= ClientSocket.Receiveln();
Label1.Caption:=Str;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if TcpServer1.Active then TcpServer1.Close;
If TcpClient1.Active then TcpClient1.Close;
end;

end.


Сергей М.   (2006-10-04 08:43:00) [1]


> За что отвечают свойства BlockMode у клиента и сервера ?


За установку синхронного или асинхронного режима ввода/вывода.


> как необходимо указать их что бы сервер смог получать данные
> от нескольких клиентов ?
>


Св-во BlockMode никак не связано с этим.


Zeqfreed   (2006-10-03 22:41:00) [2]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1021


Наверх

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