我剛開始使用Erlang。我想在Erlang中創建一個TCP服務器。我的TCP客戶端在Android上運行並連接到服務器。 我已經採取了TCP服務器實現從 https://github.com/kevinlynx/erlang-tcpserver從erlang的TCP服務器發送消息
我能夠運行服務器,客戶端連接到它,並從客戶端發送信息到服務器。此外,服務器中的邏輯是每當它從客戶端收到消息時,都會將相同的消息發送回客戶端。
所有這些工作正常,我唯一的問題是如何從erlang shell發送消息給客戶端(無需等待來自客戶端的消息)。 gen_tcp:send()函數需要Socket句柄作爲輸入,無論何時客戶端發送消息,都有一個回調函數,並且它具有套接字句柄,因此它可以用來將消息發送回客戶端,但是該怎麼做除此以外?
是的服務器接受連接 {ok,Sock} = gen_tcp:accept(LSock),(在tserver.erl的第39行) 但是我的問題是如何得到這個「Sock 「在我運行命令時在shell上?我通過 test:start()運行服務器。 (test.erl是一個文件,start()是啓動服務器的函數) 所以當我在shell上運行它時,如何獲得上面提到的「Sock」?一旦我得到「Sock」,我明白我可以使用gen_tcp:send()發送消息。 我在這裏錯過了什麼嗎? –
更新後的答案是否正確? –