Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
ВнизПомогите с TClientSocket и TServerSocket Найти похожие ветки
← →
c13 (2003-08-20 09:15) [0]Cлушайте, ну нету у меня этих компонентов, подскажите, где их взять можно?
← →
GrBob (2003-08-20 14:41) [1]Это умные люди в Borland придумали:
Вместо TClientSocket и TServerSocket (из Delphi 6) я нашел TcpClient и TcpServer (в Delphi 7) вкладка Internet. В принципе они похожи, но там функции переименованы, а некоторых вообще нет.
Попытался применить, а он че-то матерится (Error #10054)
Может кто знает как этим пользоваться?
← →
mOOx_ (2003-08-20 15:06) [2]А зачем ты при установке делфи отключал интернет компоненты? Можно попробовать доустановить его. Хотя у меня и 6-й, но я думаю, что проблема в этом :)
← →
c13 (2003-08-21 08:53) [3]Да я диск купил хреновый, установка Delphi только в версии Compact!
← →
GrBob (2003-08-21 14:15) [4]Беда именно в D7!!!
Я все всегда устанавливал. Ну и Internet компоненты естественно тоже, в D6 верю, было, а в D7 :(
← →
Андрей Сенченко (2003-08-21 14:42) [5]А зачем Ты 7-й то стал ставить ? Захотелось с .NET поработать ? Или просто модно ставить наиболее свежесворованный софт ?
← →
GrBob (2003-08-21 14:58) [6]Другого не было :)
Вот код, который я написал (вместо компонентов TClientSocket и TServerSocket я использовал TcpClient и TcpServer):
Клиент:
unit Client1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Sockets;
type
TForm2 = class(TForm)
ClientSocket1: TTcpClient;
Connect: TButton;
Disconnect: TButton;
Str: TEdit;
Send: TButton;
ListBox1: TListBox;
procedure ConnectClick(Sender: TObject);
procedure DisconnectClick(Sender: TObject);
procedure ClientSocket1Error(Sender: TObject; SocketError: Integer);
procedure SendClick(Sender: TObject);
procedure StrKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.ConnectClick(Sender: TObject);
begin
if ClientSocket1.Active then ClientSocket1.Close;
ClientSocket1.Open;
end;
procedure TForm2.DisconnectClick(Sender: TObject);
begin
if ClientSocket1.Active then ClientSocket1.Close;
end;
procedure TForm2.ClientSocket1Error(Sender: TObject; SocketError: Integer);
begin
ListBox1.Items.Add("Socket error ("+IntToStr(SocketError)+")");
end;
procedure TForm2.SendClick(Sender: TObject);
var s: string;
begin
s := Str.Text;
ListBox1.Items.Add(S);
ClientSocket1.Sendln(s);
Str.Text:= "";
// ConnectClick(Sender);
end;
procedure TForm2.StrKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then SendClick(Sender);
end;
end.
Сервер:
unit Server1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Sockets;
type
TForm1 = class(TForm)
ServerSocket1: TTcpServer;
StartServer: TButton;
ListBox1: TListBox;
FinishServer: TButton;
procedure StartServerClick(Sender: TObject);
procedure FinishServerClick(Sender: TObject);
procedure ServerSocket1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.StartServerClick(Sender: TObject);
begin
ListBox1.Items.Clear;
ServerSocket1.Open;
end;
procedure TForm1.FinishServerClick(Sender: TObject);
begin
ListBox1.Items.Clear;
if ServerSocket1.Active then ServerSocket1.Close;
end;
procedure TForm1.ServerSocket1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var s:string;
begin
S:=ClientSocket.Receiveln();
ListBox1.Items.Add(S);
end;
end.
Если убрать выделенную строку (как здесь) то после посылки первого сообщения приходится снова соединяться (собственно это и делает закомментированная строка) иначе будет возникать ошибка $54 - WSAECONNRESET Может кто знает что делать?
← →
c13 (2003-08-22 08:34) [7]Вау, Thanx!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c