參考sumo官網教程
1、對於路網,路網內交通燈以及路網內的車輛交通(流)等的設定,請參考其他高手,這裡簡單描述如何使用sumo traci多客戶端控制sumo-gui執行。
2、sumo traci的多客戶端執行的優勢如:
3、我這裡以兩個客戶端為例,實現sumo traci多客戶端執行。直接上**,會更清晰。
# client1
import os, sys
import traci
# 找到sumo或sumo-gui的環境
if'sumo_home'
in os.environ:
tools = os.path.join(os.environ[
'sumo_home'],
'tools'
)else
: sys.exit(
"please declare environment variable 'sumo_home'"
)'c:'
, os.sep,
'whatever'
,'path'
,'to'
,'sumo'
,'tools'))
port =
8813
# 設定客戶端埠號
sumobinary =
"d:\\program files (x86)\\eclipse\\sumo\\bin\\sumo-gui.exe"
sumocmd = traci.start(
[sumobinary,
"-c"
,"town05.sumocfg"
,"--num-clients"
,"2"
], port=port)
traci.setorder(1)
# 設定客戶端順序,數字任意,但各客戶端順序不可以相同
defmain()
:# 兩個客戶端都需要持續呼叫simulationstep()函式,才可以讓sumo-gui持續執行
while traci.simulation.getminexpectednumber(
)>0:
traci.simulationstep(
)"""這裡自定義traci的其他功能"""
traci.close(
)if __name__ ==
'__main__'
: main(
)
# client2
import os, sys
import traci
# 找到sumo或sumo-gui的環境
if'sumo_home'
in os.environ:
tools = os.path.join(os.environ[
'sumo_home'],
'tools'
)else
: sys.exit(
"please declare environment variable 'sumo_home'"
)'c:'
, os.sep,
'whatever'
,'path'
,'to'
,'sumo'
,'tools'))
traci.init(
8813
)traci.setorder(2)
# 設定客戶端順序,數字任意,但各客戶端順序不可以相同
defmain()
:# 兩個客戶端都需要持續呼叫simulationstep()函式,才可以讓sumo-gui持續執行
while traci.simulation.getminexpectednumber(
)>0:
traci.simulationstep(
)"""這裡自定義traci的其他功能"""
traci.close(
)if __name__ ==
'__main__'
: main(
)
以上兩個traci客戶端沒有設定與獲取任何traci功能,想要設定與獲取sumo-gui的值,可以在main函式下自定義或重新設定其他函式、類與命令,且二者客戶端執行順序無關緊要,只有在兩個客戶端都成功執行起來之後,方可成功載入路網檔案。 TCP通訊,多客戶端通訊(客戶端 服務端)
客戶端和伺服器間的交流,客戶端傳送資訊,伺服器接收到,並返回資訊 長連線建立socket連線服務端 指定ip位址,埠號 通過ip位址找對應的伺服器 呼叫socket的getinputstream 和getoutputstream 方法獲取和服務端相連的io流 輸入流可以讀取服務端輸出流寫出的資料 輸...
socket程式設計 TCP IP 多客戶端
支援多客戶的client server程式 前面的client server程式只能實現server和乙個客戶的對話。在實際應用中,往往是在伺服器上執行乙個永久的程式,它可以接收來自其他多個客戶端的請求,提供相應的服務。為了實現在伺服器方給多個客戶提供服務的功能,需要對上 面的程式進行改造,利用多執...
QTcpServer實現多客戶端連線
qtcpserver使用請見 qtcpsocket qt使用tcp通訊實現服務端和客戶端 qtcpserver類預設提供的只有無引數的newconnection的訊號,這樣雖然知道有人連線了,並且可以通過nextpendingconnection獲取連線的socket,但並不便於管理,尤其是在連線斷...