我正在使用在Android上运行的Lapsnapper(转发器计时系统)。
Lapsnapper启用可与之建立连接的TCP / IP服务器,以构建自定义接口并从系统获取其他相关数据RE:转发器等。
我不了解Lapsnapper tcp服务器规范。
我以前做过一些tcp的东西,但我主要是一个更高级别的程序员,说实话,我对这个原始TCP的东西有点不了解。
规范如下:
我不明白的是如何“发送”tcp数据?
我不明白0x70, 0x17
如何等同于(6000)和2个字节......
0x13, 0x00, 0x00, 0x00 = 19
同样适用于规范应该是4个字节,但字符串“19”是2个字节?
我想知道我在读什么。任何帮助将不胜感激,因为我需要对此服务器进行相当多的通信,我想了解我在做什么......
我已经向lapsnapper支持寻求帮助,但与此同时,我想学习以上内容。
我在TCP连接上实际“发送”了什么?
规范说我应该期待一条消息,但是对于我目前的实现,似乎已经建立了连接,但我从未收到任何回复。
期待的响应消息:
我的代码: (PS如果我与SMTP服务器进行简单连接,这个代码块就可以工作,我可以通过smtp服务器的回复进行基本连接。但是当我尝试使用下面的代码与Lapsnapper TCP服务器通话时,我从未收到回复)
string lapSnapperIP = "10.0.0.131";
int lapsnapperPort = 9001;
string lapSnapperMessageID;
string lapsnapperLengthOfMessage;
string lapsnapperProductID;
string lapsnapperServerVersion;
string lapsnapperPasswordLength;
string lapsnapperPassword;
lapSnapperMessageID = "6000";
lapsnapperLengthOfMessage = "19"; //to implement
lapsnapperProductID = "50";
lapsnapperServerVersion = "100000";
lapsnapperPasswordLength = "4";
lapsnapperPassword = "1234";
string lapSnapperDataSend;
lapSnapperDataSend = lapSnapperMessageID + lapsnapperLengthOfMessage + lapsnapperProductID + lapsnapperServerVersion + lapsnapperPasswordLength + lapsnapperPassword;
s.Connect(lapSnapperIP, lapsnapperPort);
byte[] sendMessage = Encoding.UTF8.GetBytes(lapSnapperDataSend);
byte[] receiveBytes = new byte[256];
int i = 0;
string receivedMessage = "";
//send data
i = s.Send(sendMessage);
//receive data
i = s.Receive(receiveBytes); // (no reply here...)
receivedMessage = Encoding.UTF8.GetString(receiveBytes);
由于