16 июня 2025, 05:05:11

Новости:

Узнай первым о новых темах и ответах в Telegram канале:  @gratis_forum


C

Delphi сокеты

Автор crossmark, 03 декабря 2006, 12:04:13

0 Пользователей и 1 гость просматривают эту тему.

crossmark

Всем привет.... Начал осваивать сокеты
сделал, сервер и клиент, почему на компе эти две программки договариваются, а в инете нет?
СЕРВЕр
procedure TForm1.Button1Click(Sender: TObject);
begin
server.Port:=StrToINt(edit1.Text);
server.Active:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
server.Active:=false;
 shape1.Brush.Color:=clred;
end;

procedure TForm1.ServerClientConnect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
label1.Caption:='на связи';
end;

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

procedure TForm1.ServerClientDisconnect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
label1.Caption:='отлючен';
end;

procedure TForm1.ServerClientRead(Sender: TObject;
 Socket: TCustomWinSocket);
begin
label1.Caption:=socket.ReceiveText;
end;

procedure TForm1.ServerListen(Sender: TObject; Socket: TCustomWinSocket);
begin
shape1.Brush.Color:=clgreen;
end;

Клиент
procedure TForm1.Button1Click(Sender: TObject);
begin
client1.Port:=strToINt(edit3.Text);
if radiobutton1.Checked then [Для просмотра ссылки зарегистрируйтесь]:=edit1.Text else
   if radiobutton2.Checked then  client1.Address:=edit2.Text;
client1.Active:=true;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
client1.Socket.SendText(label2.Caption);
//client1.Active:=false;
end;

procedure TForm1.Client1Error(Sender: TObject; Socket: TCustomWinSocket;
 ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
ShowMessage('There were some errors. Please report to Micorosoft.');
 ErrorCode := 0;
end;

procedure TForm1.Client1Disconnect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
label1.Caption:='non on line';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
client1.Active:=false;
end;

procedure TForm1.Client1Connect(Sender: TObject; Socket: TCustomWinSocket);
begin
    label1.Caption:='on line';
end;

использовал порты 8000, 12345, 21554

Duke

crossmark
Цитироватьсделал, сервер и клиент, почему на компе эти две программки договариваются, а в инете нет?
скорее всего блокирует файрвол.

crossmark

но у меня нет его, и у другого тоже.....

Duke

crossmark
Цитироватьно у меня нет его, и у другого тоже.....
Даже встроеного в Windows(включен по умолчанию)
Кто провайдер ? Некоторые провайдеры прячут IP своих клиентов за файрволы.

Nixton

не слушай никого!!! провайдера не имеют права прятать IP своих клиентов. Если ты хочешь спрятать -ты покупаешь хостинг и по SSH (telnet) делаешь что хочешь... или просто приобретаешь прокси. Почему нельзя прятать IP адреса? - для Б\П. При входе в Интернет, сохраняется время и IP адрес. дальше рассказывать не буду... т.к. история не об этом...
и так..повидимо у тебя не установлен...
Если у тебя стоят файерволы, то стоит ор=братить внимание, на каком порту программа рабоатет и проверить наличие блокировки... Также глянуть (может ыт по ошибке при первом запуске заблокировал эту программу) посмотри сервис (твой браузер) свойства...
там найдешь блокирование программ и разблакируй свое приложение.

другая версия:

в интернете она работать не будет, так как у тебя нигле не установлен сервер - по localhost без проблем, так как соединение оно соединение и есть ))) В сети работать не будет, так как для связи ккомптютеров надо знать имя компа по нет биос. и сервер для связи с ними -примерно как троян... ))

дерзай...!!!
будут вопросы пиши...
[Для просмотра ссылки зарегистрируйтесь]
[Для просмотра ссылки зарегистрируйтесь]



По всем вопросам пишите по адресу gratispp@mail.ru