2016-08-17 41 views
0

我能夠通過使用簡單的請求回覆使c#(客戶端)和python(服務器)彼此通話。但是,我希望我的web應用程序構建在c#asp.net上,並且需要更多的客戶端和服務器,所以我嘗試使用路由器代理代理與python連接c#和python。我試着先運行代理python腳本,然後運行c#(客戶端),然後python(服務器)。但是,當我運行python(服務器)時,它給了我一個「使用中的地址」錯誤消息。使用c#和python與路由器代理商代理服務器發送消息

我是以錯誤的順序運行它們還是有代理python腳本出現問題(如下所示)?

5602 = C#客戶端

5603 =蟒蛇服務器

def main(): 

context = zmq.Context() 

# Socket facing clients 
frontend = context.socket(zmq.ROUTER) 
frontend.bind("tcp://*:5602") 

# Socket facing services 
backend = context.socket(zmq.DEALER) 
backend.bind("tcp://*:5603") 

zmq.proxy(frontend, backend) 

# We never get here… 
frontend.close() 
backend.close() 
context.term() 

if __name__ == "__main__": 
main() 

回答

0

我假設你的服務器使用綁定的,所以代理應connect給他們,而同樣使用bind

注意:在zeromq中,應用程序啓動的順序並不重要,因此您可以將代理服務器connect指向尚不存在的服務器,服務器啓動後將進行連接。

+0

將代理腳本中的「bind」更改爲「connect」?您認爲在python服務器腳本中使用「bind」會有什麼影響嗎? – Oleole

+0

只更改第二個代碼,所以Client [connect],Proxy(frontend)[bind ],代理服務器(後端)[連接],服務器[綁定](即匹配連接綁定對) – David

+0

當我嘗試backend.connect它會拋出一個「無效參數」的錯誤是否是一個正確的語法? – Oleole