Commit 88e0f1df5703690fd6a8b8a54ad3c2755b91851c
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. | ... | ... |