[ Главная · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
ServerSocket и ClientSocket
|
Qubert
|
Дата: Понедельник, 12.03.2012, 22:21 | Сообщение # 1
|
Участник
Группа: Пользователи
Сообщений: 24
Статус: Offline
|
Всем привет!
есть небольшая проблемка с этими компонентами!
я спрашивал у муных людей, порылся в литературе, итог: я смог приконектиться к самому себе (тоесть кинул на одну форму эти два компонента, они у меня приконнектились (указывал IP 127.0.0.1))
но сам трабл такой: пробовал подключаться к другу!
спросил его IP, кинул ему сервер, клиент у меня на ПК...соединение с инетом есть!
сделал кучу мессаджов при какой-либо операции!
OnConnect,onDisconnect ит.д.....в итоге ни у друга, ни у меня ничего не повляется!
перерыл инет: везде примеры только на одном пк (тоесть с ип 127ит.д.)!
и самое главное в том, что, если они вообще не могут приконнектиться после запуска выдаёт ошибку типа там Assinhorus 10061 и похожие, но, когда коннектился к другу такого не было!
OnConnecting пишет что коннектиться, но ничего не выходит!
подскажите плз, буду очень благодарен (прогу сделал ради интереса САМОГО коннекта)
спасибо! |
|
|
|
|
Волк-1024
|
Дата: Понедельник, 12.03.2012, 22:31 | Сообщение # 2
|
Продвинутый
Группа: Проверенные
Сообщений: 130
Статус: Offline
|
Он возможно сидит за NAT'ом. Прямое подключение не получится.

Delphi+Assembler=Сила
|
|
|
|
|
Qubert
|
Дата: Понедельник, 12.03.2012, 23:10 | Сообщение # 3
|
Участник
Группа: Пользователи
Сообщений: 24
Статус: Offline
|
Доступно только для пользователей
вот клиент:
Code
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
ClientSocket1: TClientSocket;
Button2: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure ClientSocket1Connecting(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
clientSocket1.Host:='его айпи';
ClientSocket1.Open;
ClientSocket1.Socket.SendText('mes');
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
showmessage('CONNECT');
end;
procedure TForm1.ClientSocket1Connecting(Sender: TObject;
Socket: TCustomWinSocket);
begin
showmessage('connecting');
end;
end.
вот сервер:
Code
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, FileCtrl, ScktComp;
type
Tfrmsrv = class(TForm)
SrvMain: TServerSocket;
procedure SrvMainClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
procedure SrvMainClientConnect(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmsrv: Tfrmsrv;
implementation
{$R *.dfm}
procedure Tfrmsrv.FormCreate(Sender: TObject);
begin
srvmain.open;
srvmain.Active:=true;
end;
procedure Tfrmsrv.SrvMainClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
showmessage('CONNECTED1111111!');
end;
procedure Tfrmsrv.SrvMainClientRead(Sender: TObject; Socket: TCustomWinSocket);
var comd:string;
begin
comd:=SrvMain.Socket.Connections[0].Receivetext;
if comd='mes' then
begin
showmessage('Received!!');
end;
end;
end.
может быть здесь что-то не совсем точно? посмотрите плз!
|
|
|
|
|
xXxSh@dowxXx
|
Дата: Вторник, 13.03.2012, 00:20 | Сообщение # 4
|
Постоянный
Группа: Пользователи
Сообщений: 82
Статус: Offline
|
Эта ошибка 10061 о многом говорит, ты читал про нее в нете?
возможные причины: Фаерволл, или как уже сказал Волк-1024 невозможность прямого подключения! |
|
|
|
|
link993
|
Дата: Вторник, 13.03.2012, 07:55 | Сообщение # 5
|
Частый гость
Группа: Пользователи
Сообщений: 69
Статус: Offline
|
Порты проверь. У меня такая же шняга была раньше. Код на первый взгляд рабочий, но может я ошибаюсь. |
|
|
|
|
GReIIIHuK
|
Дата: Вторник, 13.03.2012, 12:11 | Сообщение # 6
|
Постоянный
Группа: Проверенные
Сообщений: 95
Статус: Offline
|
В вашем коде не указаны порты подключения. Что на сервере, то и на клиенте.
Code
ServerSocket1.Port:=1234;
ClientSocket1.Port:=1234;
Важно чтобы порт подключения был один и тот же.
На сервер можно сделать проще(OnClientRead):
Code
var
s:String;
begin
s:=Socket.Receivetext;
if s='blablabla' then
showmessage(s+'ble bla blo');
Ты допустил ошибку.
Исправляем твой код:
Code
var
Form1:TForm;
i:integer;
...
...
...
Server(OnClientConnect)
I:=i+1;
Server(OnClientDisconnect)
I:=i-1;
var comd:string;
begin
comd:=SrvMain.Socket.Connections[i].Receivetext;
if comd='mes' then
begin
showmessage('Received!!');
end;
end;
Хотя я все равно сомневаюсь в работоспособности данного кода.

Skype:"greiiihuk."


Да, я преступник. Мое преступление — любопытство.
Быть может умру я, умрут многие, но идея останется жить навсегда.
Я работаю не только за спасибо.(+) ©
Сообщение отредактировал GReIIIHuK - Вторник, 13.03.2012, 12:12
|
|
|
|
|
xXxSh@dowxXx
|
Дата: Вторник, 13.03.2012, 13:19 | Сообщение # 7
|
Постоянный
Группа: Пользователи
Сообщений: 82
Статус: Offline
|
Quote (GReIIIHuK)
В вашем коде не указаны порты подключения. Что на сервере, то и на клиенте.
может быть он порты в свойствах компонента указал?..., а вобще да..,согласен с тобой!
Сообщение отредактировал xXxSh@dowxXx - Вторник, 13.03.2012, 13:19
|
|
|
|
|
Neo
|
Дата: Вторник, 13.03.2012, 15:32 | Сообщение # 8
|
Постоянный
Группа: Проверенные
Сообщений: 83
Статус: Offline
|
У меня была такая же проблема,когда я когда-то ещё использовал компаненты.Это скорей всего баг такой.Хотя в С Bildere
эти компоненты работают исправно.Лучше используй компаненты с вкладки инди. |
|
|
|
|
Qubert
|
Дата: Вторник, 13.03.2012, 19:21 | Сообщение # 9
|
Участник
Группа: Пользователи
Сообщений: 24
Статус: Offline
|
да уж! и вправду не работает(
первоначально я кидал другу, у которого динамический ип...потом попробовал кинуть другу, у которого он статический!
все безуспешно!
в чем же тогда ошибка в коде? и как тогда быть?)
(порты я непосредственно во вкладке указывал)
точно уверен, что они не под натом (фаирвол все отключали)
спасибо за ответ! |
|
|
|
|
GReIIIHuK
|
Дата: Вторник, 13.03.2012, 20:36 | Сообщение # 10
|
Постоянный
Группа: Проверенные
Сообщений: 95
Статус: Offline
|
Вот тут можешь посмотреть пример работы на сокетах, чат не доработанный. Точнее полностью не законченный. Написал на скорую руку.
Ссылка
Пароль к архиву:Delfcode.ru
Skype:"greiiihuk."


Да, я преступник. Мое преступление — любопытство.
Быть может умру я, умрут многие, но идея останется жить навсегда.
Я работаю не только за спасибо.(+) ©
Сообщение отредактировал GReIIIHuK - Вторник, 13.03.2012, 21:01
|
|
|
|
|
Qubert
|
Дата: Вторник, 13.03.2012, 21:50 | Сообщение # 11
|
Участник
Группа: Пользователи
Сообщений: 24
Статус: Offline
|
Спасибо! |
|
|
|
|
dolphin
|
Дата: Четверг, 15.03.2012, 11:28 | Сообщение # 12
|
Администратор
Группа: Администраторы
Сообщений: 855
Статус: Offline
|
ИМХО Не проще взять другие компоненты, например ирку, асю, мейл. Вобщем из целей надо исходить.
А что касаемо личного опыта работы с данным компонентом, то сразу говорю что не более тех испытаний что проводил Qubert, так же между 2-мя компами работать отказался на чём и были заброшены все разработки с ним. 

Я не профессионал, я всего лишь любитель.
Я не вредитель, я всего лишь теоретик.
|
|
|
|
|
xXxSh@dowxXx
|
Дата: Четверг, 15.03.2012, 12:13 | Сообщение # 13
|
Постоянный
Группа: Пользователи
Сообщений: 82
Статус: Offline
|
как мне кажется, что бы эти стандартные компоненты нормально работали, для них нужно писать кучу исключений и возможных событий... |
|
|
|
|
Qubert
|
Дата: Четверг, 15.03.2012, 17:13 | Сообщение # 14
|
Участник
Группа: Пользователи
Сообщений: 24
Статус: Offline
|
Доступно только для пользователейу меня цель соединить два компа и осущесвтялть между ними передачу данных, для ИМЕННО мирных целей!
жаль, что так!
связь через мыло я уже осущсвтлял, просто для моей цели нужно в режиме реального времени. dolphin, а что за "ирка" ?) |
|
|
|
|
Marra_Kesh
|
Дата: Четверг, 15.03.2012, 18:46 | Сообщение # 15
|
Продвинутый
Группа: Модераторы
Сообщений: 110
Статус: Offline
|
Quote (Qubert)
dolphin, а что за "ирка" ?)
Он имел ввиду IRC 
Я не крекер, Я не программист!
Я не профессионал, Я не любитель!
Я не вредитель, Я не теоретик!
Я не преступник-Я ПОВАР 4 разряда!
А кто ТЫ?
|
|
|
|
|
GReIIIHuK
|
Дата: Четверг, 15.03.2012, 20:48 | Сообщение # 16
|
Постоянный
Группа: Проверенные
Сообщений: 95
Статус: Offline
|
IRC (англ. Internet Relay Chat) — протокол прикладного уровня для обмена сообщениями в режиме реального времени.
Разработан в основном для группового общения, также позволяет общаться через личные сообщения и обмениваться данными, в т.ч. файлами.
IRC использует транспортный протокол TCP и криптографический TLS (опционально).
IRC начало завоевывать особенную популярность после операции «Буря в пустыне» (1991), когда сообщения со всего мира собирались в одном месте и в режиме «on-line» транслировались в IRC.[1]
Ввиду технической простоты реализации протокол IRC в последнее время стал использоваться при организации ботнетов в качестве средства передачи управляющих команд компьютерам-участникам ботнета от владельца.
http://ru.wikipedia.org/wiki/IRC
Skype:"greiiihuk."


Да, я преступник. Мое преступление — любопытство.
Быть может умру я, умрут многие, но идея останется жить навсегда.
Я работаю не только за спасибо.(+) ©
|
|
|
|
|
Qubert
|
Дата: Четверг, 15.03.2012, 20:58 | Сообщение # 17
|
Участник
Группа: Пользователи
Сообщений: 24
Статус: Offline
|
спасибо) |
|
|
|
|
Волк-1024
|
Дата: Четверг, 15.03.2012, 22:56 | Сообщение # 18
|
Продвинутый
Группа: Проверенные
Сообщений: 130
Статус: Offline
|
Попробуй на сокетах написать.

Delphi+Assembler=Сила
|
|
|
|
|
dolphin
|
Дата: Пятница, 16.03.2012, 10:52 | Сообщение # 19
|
Администратор
Группа: Администраторы
Сообщений: 855
Статус: Offline
|
Что касаемо передачи файлов -
delfcode.ru/load/iskhodniki_delphi/seti/46-1-0-230
delfcode.ru/load/iskhodniki_delphi/seti/46-1-0-252

Я не профессионал, я всего лишь любитель.
Я не вредитель, я всего лишь теоретик.
|
|
|
|
|
Qubert
|
Дата: Воскресенье, 18.03.2012, 10:23 | Сообщение # 20
|
Участник
Группа: Пользователи
Сообщений: 24
Статус: Offline
|
Спасибо! |
|
|
|
delfcode.ru © 2008 - 2012 Хостинг от uCoz |
|
|