Commit 88e0f1df5703690fd6a8b8a54ad3c2755b91851c

Authored by Carlos Picanco
1 parent 58485dcc
Exists in master

allow clients to set a custom ip

Showing 1 changed file with 28 additions and 5 deletions   Show diff stats
units/zmq_network.pas
... ... @@ -84,6 +84,10 @@ type
84 84  
85 85 implementation
86 86  
  87 +uses Forms;
  88 +
  89 +var GClientHost : string;
  90 +
87 91 const
88 92 CHost = 'tcp://*:';
89 93 CLocalHost = 'tcp://localhost:';
... ... @@ -93,7 +97,6 @@ const
93 97 //CPortRouter = '5058';
94 98 CPortReplier = '5059';
95 99  
96   -
97 100 { TZMQClientThread }
98 101  
99 102 procedure TZMQClientThread.ThreadStarted;
... ... @@ -143,19 +146,19 @@ begin
143 146  
144 147 // client subscribe to server, it receives from itself
145 148 FSubscriber := FContext.Socket( stSub );
146   - FSubscriber.connect(CLocalHost+CPortPublisher);FSubscriber.Subscribe('');
  149 + FSubscriber.connect(GClientHost+CPortPublisher);FSubscriber.Subscribe('');
147 150 // pushes to server
148 151 FPusher_PUB := FContext.Socket( stPush );
149   - FPusher_PUB.connect(CLocalHost+CPortPuller_PUB);
  152 + FPusher_PUB.connect(GClientHost+CPortPuller_PUB);
150 153  
151 154 FPusher_REQ := FContext.Socket( stPush );
152   - FPusher_REQ.connect(CLocalHost+CPortPuller_REP);
  155 + FPusher_REQ.connect(GClientHost+CPortPuller_REP);
153 156  
154 157 // request from server
155 158 FRequester := FContext.Socket( stReq );
156 159 //FRequester.Identity := AID;
157 160 //FRequester.connect(CLocalHost+CPortRouter);
158   - FRequester.connect(CLocalHost+CPortReplier);
  161 + FRequester.connect(GClientHost+CPortReplier);
159 162  
160 163 // handle income messages
161 164 FPoller := TZMQPoller.Create(True, FContext);
... ... @@ -319,5 +322,25 @@ begin
319 322 FPusher_PUB.send(AMultipartMessage);
320 323 end;
321 324  
  325 +procedure LoadIP; //forward;
  326 +var S : TStringList;
  327 +begin
  328 + if FileExists(GetCurrentDir+'IP') then
  329 + begin
  330 + S := TStringList.Create;
  331 + try
  332 + S.LoadFromFile(ExtractFilePath(Application.ExeName))+'IP');
  333 + GClientHost := 'tcp://'+S[0]+':';
  334 + finally
  335 + S.Free;
  336 + end;
  337 + end
  338 + else GClientHost := CLocalHost;
  339 +end;
  340 +
  341 +initialization
  342 +begin
  343 + LoadIP;
  344 +end
322 345  
323 346 end.
... ...