Sockets - Funciona não Funfa na rede só no mesmo PC... PQ?
ae galera dúvida é a seguinte:
estou começando a trabalhar com os Sockets inclusive uso Delpho 7, mais instalei os componentes de TClienSocket e TServerSocket para trabalhar com ele, devido as informações encontradas na net sobre Indy não serem muitas...
só pra testar criei um Serv com um ServerSocket com as configurações...
Porta = 5555
e um Client com um ClientSocket com as configurações...
Address = 127.0.0.2
Host = 127.0.0.2
Porta = 5555
[b:f3c8fa0060] isso pra funcionar na mesma máquina...[/b:f3c8fa0060]
só pra testar a funcionabilidade da comunicação....
oxe, até ai blz na mesma máquina funcionou legal... daí fui colocar em duas máquinas, mudei o IP claro e ficou assim
Address = 192.168.254.1
Host = 192.168.254.1 - [i:f3c8fa0060]Me corrijam se estiver errado, mais aqui é o IP q o ServerSocket pega para identificar a chamada né??[/i:f3c8fa0060]
pronto, daí quando vou testar a comunicação do Serv com Client nas máquinas KD não dar nenhum sinal só o erro 10061 que pelo que já vi aqui no forum é quando o ClientSocket não encontra o ServerSocket...
e ai, alguém pode me dar uma ajudinha... :roll:
grato!
estou começando a trabalhar com os Sockets inclusive uso Delpho 7, mais instalei os componentes de TClienSocket e TServerSocket para trabalhar com ele, devido as informações encontradas na net sobre Indy não serem muitas...
só pra testar criei um Serv com um ServerSocket com as configurações...
Porta = 5555
procedure TfServ.ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin ListComm.Items.Add(´Ocorreu o seguinte erro:´+IntToStr(ErrorCode)); if ErrorCode>0 then ErrorCode := 0; end;
procedure TfServ.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var sRecebe : String; begin sRecebe := Socket.ReceiveText; ListComm.Items.Add(FormatDateTime(´dd/mm/yyyy´,Date)+ ´ - ´+FormatDateTime(´hh:mm:ss´,Time) +´ - ´+Socket.RemoteHost+´ - ´+Socket.RemoteAddress+´ - ´+ sRecebe); end;
e um Client com um ClientSocket com as configurações...
Address = 127.0.0.2
Host = 127.0.0.2
Porta = 5555
[b:f3c8fa0060] isso pra funcionar na mesma máquina...[/b:f3c8fa0060]
procedure TfClient.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin log.Items.Add(´Ocorreu o seguinte erro:´+INtToStr(ErrorCode)); if ErrorCode>0 then ErrorCode := 0; end;
só pra testar a funcionabilidade da comunicação....
procedure TfClient.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var sRecebe : String; begin sRecebe := Socket.ReceiveText; if sRecebe = ´#boot´ then begin lblMostra.Caption := ´Desligar PC´; end else if sRecebe = ´trava´ then begin ShowWindow(FindWindow(nil,´Program Manager´),SW_HIDE); BarraTarefas(False); Socket.SendText(Socket.RemoteAddress+´ - Protegido!´); end else if sRecebe = ´#libera´ then begin ShowWindow(FindWindow(nil,´Program Manager´),SW_SHOW); BarraTarefas(True); Socket.SendText(Socket.RemoteAddress+´ - Liberado!´); end else ListRecebe.Items.Add(sRecebe); end;
oxe, até ai blz na mesma máquina funcionou legal... daí fui colocar em duas máquinas, mudei o IP claro e ficou assim
Address = 192.168.254.1
Host = 192.168.254.1 - [i:f3c8fa0060]Me corrijam se estiver errado, mais aqui é o IP q o ServerSocket pega para identificar a chamada né??[/i:f3c8fa0060]
pronto, daí quando vou testar a comunicação do Serv com Client nas máquinas KD não dar nenhum sinal só o erro 10061 que pelo que já vi aqui no forum é quando o ClientSocket não encontra o ServerSocket...
e ai, alguém pode me dar uma ajudinha... :roll:
grato!
Paullsoftware
Curtidas 0
Respostas
Massuda
11/08/2005
No TClientSocket deixe a propriedade Host em branco (você não precisa dela porque você está informando o Address).
Para saber se sua rede está OK, experimente dar um PING do cliente para o servidor; no Prompt do DOS, na máquina onde está o programa cliente, dê o seguinte comando......se tiver sucesso, sua rede está OK e, a princípio, seu programa devia funcionar.
Se o PING tiver sucesso, mas você continua sem ter sucesso, pode ser que na máquina onde está o programa servidor tenha algum firewall ativo; nesse caso, você precisa liberar (no firewall) a porta que você está usando.
Para saber se sua rede está OK, experimente dar um PING do cliente para o servidor; no Prompt do DOS, na máquina onde está o programa cliente, dê o seguinte comando...
PING 192.168.254.1
Se o PING tiver sucesso, mas você continua sem ter sucesso, pode ser que na máquina onde está o programa servidor tenha algum firewall ativo; nesse caso, você precisa liberar (no firewall) a porta que você está usando.
GOSTEI 0
Paullsoftware
11/08/2005
a rede está filé...
eu trabalho normal com o sistema da empresa...
sem falar no fato q uso Modem Adsl Bidgre (Convertido em Router), mais com IP fixos...
e consigo acessar as máqunas numa Boa tanto por meio de ping quanto por meio de Ambiente de Rede...
eu trabalho normal com o sistema da empresa...
sem falar no fato q uso Modem Adsl Bidgre (Convertido em Router), mais com IP fixos...
e consigo acessar as máqunas numa Boa tanto por meio de ping quanto por meio de Ambiente de Rede...
GOSTEI 0
Massuda
11/08/2005
...consigo acessar as máqunas numa Boa tanto por meio de ping quanto por meio de Ambiente de Rede...
O fato do Ambiente de Rede funcionar não implica que a parte de TCP/IP esteja OK (pois o Windows pode utilizar vários protocolos simultaneamente), mas como você disse que o ping funciona, a única coisa que me ocorre é ser um problema de firewall. Mas eu não tenho muita experiência com esses componentes, posso estar enganado.GOSTEI 0
Paullsoftware
11/08/2005
blz massuda...
eu tb não tenho muita experiencia com eles, daí pensei que estivesse fazendo algo de errado... vlw pela ajuda...
vou tentar novamente eu outras máquinas....
só que as que tentei não possuem firewall, e usam win98 as duas...
vou testar na sala de aula todas são windows xp será q vai funcionar... :wink:
eu to tentando aprender indy, me desseram q é melhor q sockets, valeu pela ajuda um abraço... :wink:
eu tb não tenho muita experiencia com eles, daí pensei que estivesse fazendo algo de errado... vlw pela ajuda...
vou tentar novamente eu outras máquinas....
só que as que tentei não possuem firewall, e usam win98 as duas...
vou testar na sala de aula todas são windows xp será q vai funcionar... :wink:
eu to tentando aprender indy, me desseram q é melhor q sockets, valeu pela ajuda um abraço... :wink:
GOSTEI 0
Geisonc
11/08/2005
E ai, caso ainda nao tenha resolvido seu problema, nas configurações do modem vc já viu se estao liberadas estas portas que vc esta usando ?
[]s
[]s
GOSTEI 0
Paullsoftware
11/08/2005
sim estão as portas 5555 está liberada, na configuração interna do modem, [b:a8a1e4964b]Port Forwarding [/b:a8a1e4964b] e desativei o firewall dele tb...
GOSTEI 0