31.08.2008, 14:50
|
Активный
|
|
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
|
|
Помогите, пожалуйста исправить прогу(чат) для интернета
Есть код:
Код:
unit UnitInternet1;
interface
uses
Winsock,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp, ExtCtrls, AppEvnts, Menus;
type
TForm1 = class(TForm)
ClientSocket2: TClientSocket;
ServerSocket2: TServerSocket;
PanelServer: TPanel;
Label1: TLabel;
Label2: TLabel;
RemIP: TEdit;
PanelClient: TPanel;
Label3: TLabel;
Label4: TLabel;
RemIP2: TEdit;
OutServer: TButton;
Memo1: TMemo;
Str2: TMemo;
OutClient: TButton;
Str: TMemo;
MainMenu1: TMainMenu;
Options: TMenuItem;
SOptions: TMenuItem;
GetIP: TMenuItem;
SGetIP: TMenuItem;
procedure ServerSocket2ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket2Read(Sender: TObject; Socket: TCustomWinSocket);
procedure OutServerClick(Sender: TObject);
procedure ClientSocket2Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure OutClientClick(Sender: TObject);
procedure SOptionsClick(Sender: TObject);
procedure SGetIPClick(Sender: TObject);
procedure FormDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure NOTTT(Sender: TObject);
procedure NOTTT2(Sender: TObject; var CanClose: Boolean);
procedure NOTTTT3(Sender: TObject);
procedure NOTTT4(Sender: TObject; DockClient: TControl;
var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
private
{ Private declarations }
public
procedure SendMes(Text: String);
end;
var
Form1: TForm1;
implementation
uses UnitInternet1VS, Unit1InternetVIP;
{$R *.dfm}
procedure TForm1.ServerSocket2ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin // сервер получает информацию
RemIP.Text := Socket.RemoteAddress;
Str.Text := Socket.ReceiveText ;
end;
procedure TForm1.ClientSocket2Read(Sender: TObject;
Socket: TCustomWinSocket);
begin // клиент получает информацию
RemIP2.Text := Socket.RemoteAddress;
Str2.Text := Socket.ReceiveText ;
end;
procedure TForm1.SendMes(Text: String);
var
i: byte;
begin
with ServerSocket2.Socket do
begin
for i := 0 to ActiveConnections - 1 do begin
try
Connections[i].SendText(Text);
Application.ProcessMessages;
except
ShowMessage('Error при попытке отправить сообщение: '+Memo1.Text);
end;
end;
end;
end;
procedure TForm1.OutServerClick(Sender: TObject);
begin
Form1.SendMes(Memo1.Text);
end;
procedure TForm1.ClientSocket2Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Canvas.Pen.Mode := pmBlack;
Canvas.Ellipse(0,0,40,30);
end;
procedure TForm1.OutClientClick(Sender: TObject);
begin
if ClientSocket2.Active = False then begin ShowMessage('Клиент не включён'); exit; end;
try
ClientSocket2.Socket.SendText(Memo1.Text);
except
ShowMessage('Error при попытке отправить сообщение: '+Memo1.Text);
end;
end;
procedure TForm1.SOptionsClick(Sender: TObject);
begin
Form1.Enabled := False;
Form2.Left := Form1.Left-10;
Form2.Show;
end;
procedure TForm1.SGetIPClick(Sender: TObject);
const
WINSOCK_VERSION=$0101;
var
WSAData: TWSAData;
p: PHostEnt;
begin
GetIPForm.Show;
WSAStartup(WINSOCK_VERSION, WSAData);
p:=GetHostByName(PChar(GetIPForm.Edit1.Text));
GetIPForm.IP.TEXT:='IP: '+inet_ntoa(PInAddr(p.h_addr_list^)^);
WSACleanup;
end;
procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
Application.Terminate;
end;
procedure TForm1.NOTTT(Sender: TObject);
begin
//Нето
end;
procedure TForm1.NOTTT2(Sender: TObject; var CanClose: Boolean);
begin
//
end;
procedure TForm1.NOTTTT3(Sender: TObject);
begin
//
end;
procedure TForm1.NOTTT4(Sender: TObject; DockClient: TControl;
var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
begin
//Application.Terminate;
end;
end.
Так вот скажите что надо сделать, чтоб проект заработал на 2-х машинах?
|