我有多個設備連接到TCP/Ip端口,我想通過.Net中的套接字讀取所有這些設備我怎麼能這樣做這之前,我有一個單一的設備連接,它工作正常,但現在我有多個設備可以有人幫我聽多個套接字連接?多個套接字連接
Q
多個套接字連接
1
A
回答
0
事實上,對於多連接應用程序,服務器偵聽特定的端口,並且在接收到連接後,它會返回一個新的端口,您的設備將在其中創建一個新的套接字。
1
這不是一個完整的答案,但應指向正確的方向。您可以使用類似
Socket socketForClient = tcpListener.Accept();
呼叫每個連接的客戶端。您可以擁有一組Socket對象,您可以在新連接進入或關閉時處理/更新這些對象。
1
您將需要創建一個異步Tcp偵聽器。閱讀在這裏:MSDN Socket Class
首先設置您的聽衆:
private static System.Threading.ManualResetEvent connectDone =
new System.Threading.ManualResetEvent(false);
void StartListen(IPEndPoint serverEP, int numDevices)
{
sock.Bind(serverEP);
sock.Listen(numDevices); // basically sit here and wait for client to request connect
/*
* While statement not required here because AcceptConnection()
* method instructs the socket to BeginAccept()...
*/
connectDone.Reset();
sock.BeginAccept(new AsyncCallback(AcceptConnection), sock);
connectDone.WaitOne();
}
在一些例子中,你可能會看到一個while(true)
塊內的BeginAccept(...)
方法。但你不需要異步。我認爲使用while(true)
是不合適的。當然,你再接受連接aynchronously:
void AcceptConnection(IAsyncResult asyncRes)
{
connectDone.Set();
System.Net.Sockets.Socket s = channelworker.EndAccept(asyncRes);
byte[] messagebuffer = new byte[bufferSize];
/*
* Tell socket to begin Receiving from caller.
*/
s.BeginReceive(messageBuffer, 0, messageBuffer.Length,
System.Net.Sockets.SocketFlags.None, new AsyncCallback(Receive), s);
/*
* Tell Channel to go back to Accepting callers.
*/
connectDone.Reset();
sock.BeginAccept(new AsyncCallback(AcceptConnection), sock);
connectDone.WaitOne();
}
通常情況下,一旦你通過一對夫婦的同步練習過程中,並獲得.Beginxxx
/.Endxxx
方法的竅門,並使用AsyncCallback的,你會得到的竅門怎麼運行的。通讀我給你的MSDN參考,這應該會給你一個很好的開始。
相關問題
- 1. PHP套接字 - 接受多個連接
- 2. 套接字多連接VB.NET
- 3. 處理多個套接字連接
- 4. Python套接字處理多個連接
- 5. 多個java套接字連接
- 6. Java套接字多個連接
- 7. Python套接字 - 連接套接字
- 8. 套接字連接
- 9. 多套接字連接TCP C#
- 10. 多線程套接字連接C#?
- 11. 客戶端套接字連接到多個套接字和餘額加載到一個空閒套接字
- 12. 如何將經銷商套接字連接到多個路由器套接字?
- 13. 如何讓套接字接受多個連接?
- 14. 套接字控制接受多個UDP連接
- 15. 接受多個後續連接到套接字
- 16. Android多線程程序中的多個套接字連接
- 17. 一個套接字的多個客戶端連接
- 18. socket.io每個連接創建多個套接字
- 19. Akka ZeroMQExtension使用一個zeromq套接字創建多個連接
- 20. 每個連接需要多少個套接字?
- 21. 連接兩個客戶端套接字
- 22. Python套接字連接
- 23. Java套接字連接
- 24. 異步套接字連接
- 25. SSL流套接字連接
- 26. 中斷連接套接字
- 27. TCP套接字連接
- 28. 套接字連接:Python
- 29. c#套接字連接
- 30. 套接字連接問題