我有一個GPS設備,將安裝在許多卡車。 我可以配置設備通過gprs發送數據語句「gps data,device id」到IP和端口。 我使用TcpListener
類來讀取服務器端的數據。通過gprs從設備讀取消息
TcpListener server = null;
private void listen_data()
{
Int32 port = controller_port;
IPAddress localAddr = IPAddress.Parse(this_ip);
server = new TcpListener(localAddr, port);
server.Start();
Byte[] bytes = new Byte[256];
String data = null;
while (true)
{
Console.Write("Waiting for a connection...-- ");
TcpClient client = server.AcceptTcpClient();
Console.Write("Connected!");
data = null; int i;
NetworkStream stream = client.GetStream();
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
{
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
}
}
}
該方法正在偵聽服務器ip和端口上的內容。
我想知道如果我配置的設備發送到服務器上的相同port.am我能聽所有的設備或連接將是唯一一個第一設備?
這種方法是從設備讀取即將到來的數據的最佳方式?
我需要爲每個設備配置不同的端口併爲每個設備端口創建一個新的監聽線程嗎?
有時我面對異常「請求信道超時,同時等待答覆」對您有所幫助
許多在此先感謝。
錯誤\t \t 1爲「System.Threading.ThreadPool.QueueUserWorkItem(的System.Threading最好重載方法匹配。WaitCallback)'有一些無效的參數,另一個錯誤Error2Argument'1':無法從'無效'轉換爲'System.Threading.WaitCallback' – Ramah
@ Ramah:答案已更新。 –
非常感謝我沒有嘗試它,但我固定舊one.many很多謝謝 – Ramah