Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{... Здесь идет заголовок файла и определение формы TForm1 и ее экземпляра Form1} procedureTForm1.Button1Click(Sender: TObject); begin
{Определяем порт и запускаем сервер} ServerSocket1.Port := 1025; {Метод Insert вставляет строку в массив в указанную позицию} Memo2.Lines.Insert(0,'Server starting'); ServerSocket1.Open; end
; procedure
TForm1.Button2Click(Sender: TObject); begin
{Останавливаем сервер} ServerSocket1.Active := False
; Memo2.Lines.Insert(0,'Server stopped'); end
; procedure
TForm1.ServerSocket1Listen(Sender: TObject; Socket: TCustomWinSocket); begin
{Здесь сервер "прослушивает" сокет на наличие клиентов} Memo2.Lines.Insert(0,'Listening on port '+IntToStr(ServerSocket1.Port)); end
; procedure
TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket); begin
{Здесь сервер принимает клиента} Memo2.Lines.Insert(0,'Client connection accepted'); end
; procedure
TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin
{Здесь клиент подсоединяется} Memo2.Lines.Insert(0,'Client connected'); end
; procedure
TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin
{Здесь клиент отсоединяется} Memo2.Lines.Insert(0,'Client disconnected'); end
; procedure
TForm1.ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var
ErrorCode: Integer); begin
{Произошла ошибка - выводим ее код} Memo2.Lines.Insert(0,'Client error. Code = '+IntToStr(ErrorCode)); end
; procedure
TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin
{От клиента получено сообщение - выводим его в Memo1} Memo2.Lines.Insert(0,'Message received from client'); Memo1.Lines.Insert(0,'> '+Socket.ReceiveText); end
; procedure
TForm1.ServerSocket1ClientWrite(Sender: TObject; Socket: TCustomWinSocket); begin
{Теперь можно слать данные в сокет} Memo2.Lines.Insert(0,'Now can write to socket'); end
; procedure
TForm1.ServerSocket1GetSocket(Sender: TObject; Socket: Integer; var
ClientSocket: TServerClientWinSocket); begin
Memo2.Lines.Insert(0,'Get socket'); end
; procedure
TForm1.ServerSocket1GetThread(Sender: TObject; ClientSocket: TServerClientWinSocket; var
SocketThread: TServerClientThread); begin
Memo2.Lines.Insert(0,'Get Thread'); end
; procedure
TForm1.ServerSocket1ThreadEnd(Sender: TObject; Thread: TServerClientThread); begin
Memo2.Lines.Insert(0,'Thread end'); end
; procedure
TForm1.ServerSocket1ThreadStart(Sender: TObject; Thread: TServerClientThread); begin
Memo2.Lines.Insert(0,'Thread start'); end
; procedure
TForm1.Button3Click(Sender: TObject); var
i: Integer; begin
{Посылаем ВСЕМ клиентам сообщение из Edit1} for
i := 0 to
ServerSocket1.Socket.ActiveConnections-1 do
begin
ServerSocket1.Socket.Connections[i].SendText(Edit1.Text); end
; Memo1.Lines.Insert(0,'< '+Edit1.Text); end
;