国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

(udp)能不能使用監(jiān)聽的端口發(fā)消息?比如監(jiān)聽udp,4778,向其他服務器主動發(fā)消息時,也用4778發(fā)出.

augushong

(udp)能不能使用監(jiān)聽的端口發(fā)消息?比如監(jiān)聽udp,4778,向其他服務器主動發(fā)消息時,也用4778發(fā)出.
我測試的是不可以的,使用reusePort也不行,我的寫法如下:

$a = new Worker(xxx:4778);
$a->reusePort = true;
$a->onWorkerStart = function(){
    $opts = ;
    $n = new AsyncUdpConnection('udp://xxx:x',$opts);//其他udp連接
    $n->reusePort = true;
    $n->connect();
};

是這樣類似寫法,當我發(fā)起新連接時,都會告訴我 already in use,
及時我新發(fā)起的連接不使用監(jiān)聽的端口,比如"bind_to"=>47781,這次連接會以47781發(fā)起,但是如果我繼續(xù)用相同的配置再次發(fā)起連接,又會告訴我already in use.
我的系統(tǒng)是centos7,php72,yum安裝并更新.
?
是哪里操作不對還是怎樣.
或者有沒有其他任何方法實現(xiàn):我跟別人建立的連接也是我所監(jiān)聽的連接,
如果workerman,那么有沒有底層的方法可以實現(xiàn).
給個思路,關鍵字都可以,
(當然,關于reusePort,根據(jù)手冊的用法是可以,同時監(jiān)聽.我這里需要發(fā)起新的連接)

5129 2 0
2個回答

augushong

最近又繼續(xù)研究這個,發(fā)現(xiàn)
stream_socket_server和stream_socket_cliect
兩個基本的流操作函數(shù),server可以開啟多個監(jiān)聽,client不能有任何沖突,使用socket那一套也一樣,所以reusePort的參數(shù)并不能用.
目前仍在研究,如果有人能在不用swoole的情況下實現(xiàn)這點,請在此更新.

  • 暫無評論
augushong

問題已解決,
可以實現(xiàn)在同一端口上,既監(jiān)聽,又發(fā)送.
思路如下:
監(jiān)聽2222端口,
當需要發(fā)送時,取消監(jiān)聽2222端口,
使用2222端口發(fā)消息
發(fā)完消息重新監(jiān)聽2222端口
?
注意:
不要再主進程監(jiān)聽2222,
比如,不要直接new worker('XXX:2222')
這樣在這個worker的回調(diào)里取消監(jiān)聽的只是子進程的socket,主進程仍然在監(jiān)聽,所以還是無法占用這個端口發(fā)送消息.
主進程應當 不堅挺任何端口,在主進程的onworkerstart里啟動監(jiān)聽,這樣監(jiān)聽端口的進程和發(fā)消息的進程都是有主進程控制的,這時就能有效.

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??