我有一个 GPS 设备,它将安装在许多卡车上。我可以将设备配置为通过 gprs 向 IP 和端口发送数据语句“gps 数据,设备 ID”。我正在使用TcpListener
类来读取服务器端的数据。
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 和端口上的内容。
我想知道我是否将设备配置为在同一个端口上发送到服务器。我能够监听所有设备还是第一个连接的设备将是唯一的?
这种方法是从设备读取传入数据的最佳方法吗?
我是否需要为每个设备配置不同的端口并为每个设备端口创建一个新的监听线程?
有时我会遇到异常“请求通道在等待回复时超时”
非常感谢您的帮助。