Hi,
ik ben nu bezig met sockets in delphi
ik heb in de client side 3 sockets draaien.
1 authentication en 1 Find TClientSockets en 1 FindServer TServerSocket
in het begin authentication socket maakt verbinding met de server ergens op het internet. Daarna wordt in de client side FindServer socket gestarts die bedoeld is om zoek resultaten te ontvangen.
Nu een clientB verbinding wilt maken met ClientA om zoek resultaten te versutren en bij ClientA side wordt de procedure sckAuthenticationConnect aan geroepen terwijl sckFindServerConnect aan geroepen moet worden.
Weet iemand waarom dit gebeurt?
Bij client side tijdens het opstarted van de app gebeurt onder andere het volgende:
als een client iets vindt dan worden de volgende regels uitgevoerd
bij sckFindClient.open zou hij namelijk connecten naar de ip strReqstorIP op port 3000 en hij moet sckFindServerConnect aan roepen bij strReqstorIP maar dat gebeurt juist niet maar wordt sckAuthentication aan geroepen.
heeft iemand enige idee?
ik heb in vb veel socket apps gemaakt maar nooit zoiets tegen gekomen, dit is eerste app in delphi dus ik vermoed het michien anders is dan ik gewend ben.
alvast bedankt voor de antwoorden
Raju
ik ben nu bezig met sockets in delphi
ik heb in de client side 3 sockets draaien.
1 authentication en 1 Find TClientSockets en 1 FindServer TServerSocket
in het begin authentication socket maakt verbinding met de server ergens op het internet. Daarna wordt in de client side FindServer socket gestarts die bedoeld is om zoek resultaten te ontvangen.
Nu een clientB verbinding wilt maken met ClientA om zoek resultaten te versutren en bij ClientA side wordt de procedure sckAuthenticationConnect aan geroepen terwijl sckFindServerConnect aan geroepen moet worden.
Weet iemand waarom dit gebeurt?
Bij client side tijdens het opstarted van de app gebeurt onder andere het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
| try
{- Set Host Address -}
sckAuthentication.Host := edtAR_Addr.Text;
{- Activate Socket, Use Open To Bypass Firewalls -}
sckAuthentication.Open;
sckFindServer.Open;
except
statusbar.Panels.Items[0].Text := 'Status: Error Signing In :(';
MessageDlg('Some Problems With Signing You In, Please Try Again At A Laste Time.', mtInformation, [mbOk], 0);
end; |
als een client iets vindt dan worden de volgende regels uitgevoerd
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| try
sckFindClient.Host := strReqstorIP;
sckFindClient.open;
except
//do nothing
end;
if sckFindClient.Active then
begin
sckFindClient.Socket.SendText(AddSpace('SR ACK',15) + strSearchTrigger + ';' + strSearchResult);
application.ProcessMessages;
sckFindClient.Close;
end; |
bij sckFindClient.open zou hij namelijk connecten naar de ip strReqstorIP op port 3000 en hij moet sckFindServerConnect aan roepen bij strReqstorIP maar dat gebeurt juist niet maar wordt sckAuthentication aan geroepen.
heeft iemand enige idee?
ik heb in vb veel socket apps gemaakt maar nooit zoiets tegen gekomen, dit is eerste app in delphi dus ik vermoed het michien anders is dan ik gewend ben.
alvast bedankt voor de antwoorden
Raju