ClientSocket
05/12/2005
0
Eu uso Delphi 6 e utilizo o componente client Socket da FastNet.
Gostaria de saber a possibilidade de setar a porta local deste componente, mas não consigo, pois ele diz que é uma propriedade read only.
Em todo caso se alguém tiver alguma idéia de como fazer isso, ficarei agradecido, pois uso este componente em vários projetos, mas caso alguém tenha outra sugestão tb é bem aceito.
Abraços
George
George_piaulino
Post mais votado
07/12/2005
procedure TForm1.ClientSocket1Lookup(Sender: TObject; Socket: TCustomWinSocket);
var
Addr: TSockAddrIn;
teste, Err: Integer;
begin
teste:=0;
FillChar(Addr, teste, SizeOf(Addr));
Addr.sin_family := PF_INET;
Addr.sin_addr.s_addr := INADDR_ANY;
// if you want to bind to a specific local IP instead:
// Addr.sin_addr.s_addr := inet_addr(´the ip address here´);
Addr.sin_port := htons(7000);
if bind(Socket.SocketHandle, Addr, SizeOf(Addr)) <> 0 then
begin
Err := WSAGetLastError;
if Err <> WSAEWOULDBLOCK then
raise ESocketError.CreateResFmt(@sWindowsSocketError,
[SysErrorMessage(Err), Err, ´bind´]);
end;
George_piaulino
Mais Posts
05/12/2005
Nildo
Acho que voce tem que desativar a conexão dele antes de alterar a porta.
05/12/2005
George_piaulino
Acho que voce tem que desativar a conexão dele antes de alterar a porta.[/quote:14e76bb37a]
Isso eu sei, mas gostaria que vc tentasse mudar essa propriedade da porta local, a propriedade eh localporta via código, e isso não consigo.
Mas valeu pela dica
05/12/2005
Nildo
Bom, daí já não sei. Mas parece que o TServerSocket da palesta Internet também não é possível mudar a portal local. Se eu não me engano também, os da Indy funcionam perfeitamente!
05/12/2005
Thomaz_prg
Isso seria equivalente a buscar um host local, colocando LocalHost no nome do host... faço assim e funciona.
05/12/2005
George_piaulino
é o seguinte, o componente é o TclientSocket e o problema é o seguinte, isto é se for um problema.
Ao enviar uma mensagem ou um buffer para o TseverSocket, com certeza o Server vai me informar o IP e a porta de de origem, mas todavia ao me informar ele me indica portas sequênciais.
O que preciso é a possibilidade de setar a propriedade do LocalPort do TclientSocket como por exemplo 7500, mas infelizmente ele não deixa me informando que é uma propriedade Read Only.
Não me preocupo com o local host, pois o próprio componete já faz isso automaticamente.
Agora se não existe a possibilidade, terei uma grande diversão de alterar meus projetos...hehehehehehehehehe...
Mas em todo caso fico feliz pela atenção dada e caso alguém queira me sugerir algum outro método ou componente ficarei ainda mais feliz.
Como citou nosso colega anteriormente, a preguiça eh jogo duro.
Mas caso vcs analise faça um projeto client e um outro server e vcs verão qual porta de oprigem do client.
Abraços e vou a luta.
George
05/12/2005
Massuda
Clique aqui para fazer login e interagir na Comunidade :)