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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.12.2007, 21:08   #1
DOLBY
Форумчанин
 
Аватар для DOLBY
 
Регистрация: 12.12.2007
Сообщений: 121
Восклицание проблема с TServerSocket и с TClientSocket

сделал прогу, которая передаёт из edit1 строку с помощью ClientSocket'a ServerSocket'у, а принятие идёт в edit2, запускаю 2 раза прогу у себя на одном компе..
проблема такая, если clientsocket.Host='127.0.0.1', то строка передаётся, но если пишу свой "внешний" IP (у меня ADSL2+), то clientsocket не может подключиться к serversocket'y с таким же IP, это наводит меня на мысль, что передача не будет идти с одного компа на другой, не соединёных ничем, кроме инета...
как мне решить эту проблему?
может взять другие компоненты?
P.S. TCPServer и TCPClient уже пробовал...
Компьютеры - вещь слишком сложная, чтобы работать в принципе. Поэтому то, что они работают хоть как-то, уже чудо.
DOLBY вне форума
Старый 18.12.2007, 00:09   #2
zAlexandrz
Пользователь
 
Аватар для zAlexandrz
 
Регистрация: 03.11.2007
Сообщений: 25
По умолчанию

Код выкладывай
zAlexandrz вне форума
Старый 18.12.2007, 11:17   #3
DOLBY
Форумчанин
 
Аватар для DOLBY
 
Регистрация: 12.12.2007
Сообщений: 121
По умолчанию

Вот код...

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Sockets, ExtCtrls, IdTCPServer, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, ScktComp;

type
  TForm1 = class(TForm)
    ser: TServerSocket;
    cli: TClientSocket;
    Label1: TLabel;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    CheckBox1: TCheckBox;
    Edit3: TEdit;
    Button2: TButton;
    procedure FormDestroy(Sender: TObject);
    procedure cliConnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure cliDisconnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure cliConnecting(Sender: TObject; Socket: TCustomWinSocket);
    procedure Button1Click(Sender: TObject);
    procedure serClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormDestroy(Sender: TObject);
begin
 cli.Active:=false;
 ser.Active:=false;
end;

procedure TForm1.cliConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
 label1.Caption:='...Connected';
end;

procedure TForm1.cliDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
 label1.Caption:='Disonnected...';
end;

procedure TForm1.cliConnecting(Sender: TObject; Socket: TCustomWinSocket);
begin
 label1.Caption:='...Connecting...';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 cli.Socket.SendText(edit1.Text);
end;

procedure TForm1.serClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
 edit2.Text:=socket.ReceiveText;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 cli.Active:=false;
 ser.Active:=false;
 if checkbox1.Checked then
  begin
   cli.Port:=100;
   ser.Port:=200;
  end else
   begin
    cli.Port:=200;
    ser.Port:=100;
   end;
 cli.Host:=edit3.Text;
 cli.Active:=true;
 ser.Active:=true;
end;

end.
Компьютеры - вещь слишком сложная, чтобы работать в принципе. Поэтому то, что они работают хоть как-то, уже чудо.
DOLBY вне форума
Старый 18.12.2007, 20:04   #4
zAlexandrz
Пользователь
 
Аватар для zAlexandrz
 
Регистрация: 03.11.2007
Сообщений: 25
По умолчанию

Странно, ошибки нет, у меня примерно также, все работает, единственное предположение может фаервол такое давать
zAlexandrz вне форума
Старый 18.12.2007, 20:16   #5
DOLBY
Форумчанин
 
Аватар для DOLBY
 
Регистрация: 12.12.2007
Сообщений: 121
По умолчанию

Никаких программ, блокирующих выход в инет нету, поэтому и спрашиваю...
Компьютеры - вещь слишком сложная, чтобы работать в принципе. Поэтому то, что они работают хоть как-то, уже чудо.
DOLBY вне форума
Старый 18.12.2007, 20:19   #6
zAlexandrz
Пользователь
 
Аватар для zAlexandrz
 
Регистрация: 03.11.2007
Сообщений: 25
По умолчанию

проверь, а пингуется нормально этот IP?


Вот чат, проверь у себя если не заработает это глюк твоей системы
Попробуй эту прогу

Последний раз редактировалось zAlexandrz; 18.12.2007 в 20:26.
zAlexandrz вне форума
Старый 18.12.2007, 21:08   #7
DOLBY
Форумчанин
 
Аватар для DOLBY
 
Регистрация: 12.12.2007
Сообщений: 121
По умолчанию

ошибка такая: "asynchrones socket error 10061" и у меня и у друга.
у нас у обоих ADSL2+, может в этом проблема?
Компьютеры - вещь слишком сложная, чтобы работать в принципе. Поэтому то, что они работают хоть как-то, уже чудо.
DOLBY вне форума
Старый 18.12.2007, 21:16   #8
PAVEL315
Форумчанин Подтвердите свой е-майл
 
Аватар для PAVEL315
 
Регистрация: 18.11.2006
Сообщений: 172
По умолчанию

IP сервера надо вводить в клиенте
Узнать его можно ТУТ
дык!
PAVEL315 вне форума
Старый 18.12.2007, 21:46   #9
DOLBY
Форумчанин
 
Аватар для DOLBY
 
Регистрация: 12.12.2007
Сообщений: 121
По умолчанию

Цитата:
Сообщение от PAVEL315 Посмотреть сообщение
IP сервера надо вводить в клиенте
Узнать его можно ТУТ
я так и делаю!!!
ведь написал уже..
Компьютеры - вещь слишком сложная, чтобы работать в принципе. Поэтому то, что они работают хоть как-то, уже чудо.
DOLBY вне форума
Старый 19.12.2007, 12:36   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Вот что говорит по этому поводу MSDN (в свободном переводе) Socket error 10060 - Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
Делайте выводы... NAT ? PortForwarding? IDS ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компоненты TServerSocket и TClientSocket Vadim Компоненты Delphi 5 15.03.2010 20:34
TClientSocket - сохранение JRcoker Общие вопросы Delphi 4 03.08.2008 00:37
Передача файла через TServerSocket и TClientSocket Vanya Работа с сетью в Delphi 10 08.04.2008 18:12
Проблема с TClientSocket, TServerSocket PLOT_HD Работа с сетью в Delphi 4 11.08.2007 17:03
Компонент TServerSocket в Delphi 7 dfmb Компоненты Delphi 9 03.08.2007 19:09