Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
2 / 2 / 1
Регистрация: 22.02.2016
Сообщений: 55
1

Простенький чат между компьютерами

23.02.2016, 19:15. Показов 2864. Ответов 21

Author24 — интернет-сервис помощи студентам
Здраствуйте, извиняюсь за вопрос (просто знаю что тут таких много) но всё же. Создал самый простенький чат между компьютерами. Пользуюсь компонентами TClientSocket , TServerSocket. Так от в принципе я написал и по локальной сети он работает но с каким то удаленым компьютером не работает! когда я в Клиенте прописую в свойстве Adress:127.0.0.1 то работает но по локалке, а вот когда ввожу свой IP і прошу друга из другого города запустить клиент то Соидинение не происходит. Подскажите что делать, как установить соееденение между сервером и клиентом, если клиент находиться на одном компьютере а сервер на втором(НЕ ЛОКАЛЬНОЕ СОИДЕНЕНИЕ)?

Добавлено через 3 минуты
Помогите!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2016, 19:15
Ответы с готовыми решениями:

Как создать простенький чат?
Помогите поже :)

Связь между двумя компьютерами
Загорелась идея создать чат (с передачей файлов) между двумя компьютерами. Но вот IP-адреса то...

Передача данных между компьютерами
Всем доброго времени суток! Я в сфере компьютерных сетей разбираюсь плохо... У меня есть такая...

как обмениваться данными между компьютерами ?
как обмениваться данными между компьютерами ? Мне надо написать прогу на чистом winapi то есть без...

21
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
23.02.2016, 19:23 2
вам бы книжку почитать по основам сетей и маршрутизации
0
2 / 2 / 1
Регистрация: 22.02.2016
Сообщений: 55
23.02.2016, 19:33  [ТС] 3
Помог бы лучше)
0
Пишу на Delphi...иногда
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
23.02.2016, 19:43 4

Не по теме:

не хочу думать, хочу шубку (с)


для начала: грубо говоря, сервер должен обладать "белым" статическим адресом, чтобы клиент знал куда стучаться
имеющийся сервер таковым обладает?
далее см #2
1
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.02.2016, 19:50 5
Цитата Сообщение от Onyschuck Посмотреть сообщение
прошу друга из другого города
Твоему другу или тебе нужная VPN или статический IP. Иначе не сработает.
OpenVPN или Тимвьювер теоретически могу помочь, но только на этапе тестирования.
Потому такие корпорации как Skype содержат сервера, которые выступают посредниками со статикой, для связи между двумя абонентами.
1
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
23.02.2016, 19:53 6
Hikari, а как тут может тимвьювер помочь?

Цитата Сообщение от Hikari Посмотреть сообщение
Потому такие корпорации как Skype содержат сервера, которые выступают посредниками со статикой, для связи между двумя абонентами.
а это тут причем?
0
2 / 2 / 0
Регистрация: 27.05.2012
Сообщений: 72
23.02.2016, 19:54 7
а я когда-то тоже делал прогу такую только мне влом было подключать выделеный IP, я просто на халявном FTP создал текстовый документ который читали и перезаписывали все клиентские программы
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
23.02.2016, 19:59 8
hamik, чат с файлом на фтп? о_О
0
2 / 2 / 0
Регистрация: 27.05.2012
Сообщений: 72
23.02.2016, 20:17 9
ну [cut] не сложно же клиентской программе загрузить фаил и отобразить его в мемо например, потом пишем в эдит сообщение жмем отправить и файлик перезаписывается, единственое что нужно постояно чистить от старых сообщений и мне кажется если на такой чат посадить человек сто то он ляжет, но нас было шестеро и все было ок
0
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.02.2016, 21:18 10
Цитата Сообщение от qwertehok Посмотреть сообщение
а как тут может тимвьювер помочь?
VPN своим. Я иногда им пользуюсь в примерно таких же случаях.
0
mss
23.02.2016, 21:56
  #11

Не по теме:

Skype содержат сервера, которые выступают посредниками со статикой, для связи между двумя абонентами
Вообще-то основа Скайпа как распределенной децентрализованной сети - суперноды. Они в принципе не обязаны иметь стат.адреса, хотя по сути являются в том числе и посредниками.
Каждый оконечный узел, с некоторых пор обязательно являющий собой супернод, непрерывно отслеживает, кеширует и обновляет свой актуальный список супернодов-соседей.

0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
24.02.2016, 09:02 12
Цитата Сообщение от hamik Посмотреть сообщение
но нас было шестеро и все было ок
если бы вы писали раз в секунду - ваш файлик бы и лег
0
2 / 2 / 1
Регистрация: 22.02.2016
Сообщений: 55
25.02.2016, 17:25  [ТС] 13
Короче, запустил я сервер на статическом IP. В клиенте указал Ip сервера, но все же вискакивает ошибка Soocket error 10060, что делать?

Добавлено через 53 секунды
Короче, запустил я сервер на статическом IP. В клиенте указал Ip сервера, но все же вискакивает ошибка Soocket error 10060, что делать?
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
25.02.2016, 17:41 14
статический IP то у компа? или ты подключаешься через роутер?
0
2 / 2 / 1
Регистрация: 22.02.2016
Сообщений: 55
25.02.2016, 18:00  [ТС] 15
Вобщем, я запустил сервер по статичиском IP, я подключен через Wi fi. Друг через этот же вайфай - но выдает ошибку 10060. Я пробувал ставить ему сервер, а сам подключаться с другого интернета к серверу но ошибка также!
0
2 / 2 / 1
Регистрация: 22.02.2016
Сообщений: 55
25.02.2016, 18:04  [ТС] 16
Вобщем пробувал пропингувать вот результаты
Миниатюры
Простенький чат между компьютерами  
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.02.2016, 20:41 17
Цитата Сообщение от Onyschuck Посмотреть сообщение
Друг через этот же вайфай
Роутер, раздающий вафлю, чей - твой или провайдера ?
Если твой, какого же лешего вы ходите друг к другу через Китай ?)

Вы ж наверняка в едином сегменте своей собственно локальной сети, зачем пыжиться ходить в хост в той же лок.сети через глобальный адрес совсем в другой подсети (подсети внешнего провайдера, к которому роутер подключен WAN-дыркой) ?
0
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
26.02.2016, 07:34 18
Теоритечески тебе нужно прописать свой глобальный адрес в его программе, а его белый адрес ты в своей должен прописать.

Но практически это не отработает ни чего по ряду причин:

-брендмауер
-не проброшен порт
-твой белый адрес дублируется (еще где то есть такой же)
-нарушение маршрутизации
-свои защиты провайдера
-прочая защита

Твой провайдер тоже делает защиту от вмешательств извне, а как ты хотел, и твоему другу будет непросто достучаться в твой комп из своей программы и наоборот.

Как ни крути, какие компоненты не используй вобщем твои усилия всегда будут заканчиваться провалом.
И не просто проэкты твои провалом закончится, а провалом с большим треском.

Подумай например в другую сторону на создание подобно работающего приложения.
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
26.02.2016, 08:39 19
а я уже писал что ему нужно книжку почитать
книжку, КАРЛ!
0
2 / 2 / 1
Регистрация: 22.02.2016
Сообщений: 55
27.02.2016, 16:44  [ТС] 20
Скажите, я подключил VPN. IP тот что получил пропингирував , на обох компах где я пропингировав был ответ от сервера. Так же я еще воспользувался сервисом No-ip. Вобщем запустил сервер у себя, у меня здесь стоит все выше описаное и другу дал запустить клиент на его компе...вобщем выдает ошибку soket error 10061 типо сервер не запущеный, скажите что не так я сделал вот код делфи:
Клиент:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
unit Unit2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp, IdBaseComponent, IdComponent, IdIPWatch;
 
type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    log: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
with ClientSocket1 do
  begin
    Host := 'onyschuck1program.no-ip.info';
    Port := 8090;
    Open;
  end;
log.Clear;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText(Edit1.Text);
 end;
 
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
  var i:integer;
begin
  with (log) do
  begin
    Items.Add(Socket.ReceiveText);
 
  end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.close;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
ClientSocket1.Open;
end;
 
procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
log.Items.Add('Связь с сервером установленна!');
Log.Items.Add('');
end;
 
procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
log.Items.Add('Связь с сервером не установленна!');
Log.Items.Add('');
end;
 
end.
0
27.02.2016, 16:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2016, 16:44
Помогаю со студенческими работами здесь

Организация передачи данных между двумя компьютерами
Меня интересуют методы передачи данных от компьютера к компьютеру без посредников, TCP/IP и портов.

Простенький чат на странице
Всем привет, столкнулся с проблемой... Я пытался создать чат по такой системе: Юзер заходит на...

Простенький асинхронный чат. Что-то не то с кодировкой
Нашел пример простого чата. В комплект поставки входит серверная чать и клиентская (исходник в...

Связь между компьютерами
Как установить связь между компьютерами, например, по LAN-кабелю? Есть 2 программы, которым нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru