Tcp SIM900D对Web服务器的透明模式只允许传输一次

Tcp SIM900D对Web服务器的透明模式只允许传输一次,tcp,get,webserver,put,gprs,Tcp,Get,Webserver,Put,Gprs,我使用这一系列AT命令,通过SIM900D GSM/GPRS模块与笔记本电脑连接并发送/接收数据 直到两个端点中的任何一个决定终止TCP连接,TCP连接才会结束。。另一方面,当我尝试连接我们的Web服务器时(例如,AT+CIPSTART=“TCP”,“www.mydomain.com”,“80”) 它实现了连接。。但是,如果GPRS模块没有立即发送任何数据,Web服务器很快就会终止TCP连接。。如果我尝试通过发送url发送数据(例如,PUT/send.php?g0=21 HTTP/1.1\r

我使用这一系列AT命令,通过SIM900D GSM/GPRS模块与笔记本电脑连接并发送/接收数据

直到两个端点中的任何一个决定终止TCP连接,TCP连接才会结束。。另一方面,当我尝试连接我们的Web服务器时(例如,AT+CIPSTART=“TCP”,“www.mydomain.com”,“80”)

它实现了连接。。但是,如果GPRS模块没有立即发送任何数据,Web服务器很快就会终止TCP连接。。如果我尝试通过发送url发送数据(例如,PUT/send.php?g0=21 HTTP/1.1\r\nHost:dlsu ect.com\r\n\r\n$1A\r),Web服务器将接收数据,但它会在传输后立即终止。透明模式只允许每个TCP连接进行一次传输


我做得对吗?我将数据传输到我们的Web服务器的方式是否是透明模式的正确方式?

如果您的请求正确地将数据保存到服务器,您可以尝试添加一个标头,请求服务器在响应第一个请求后不立即关闭连接

尝试发送:

PUT /send.php?g0=21 HTTP/1.1\r\n
Host: dlsu-ect.com\r\n
Connection: Keep-alive\r\n
Content-length: 3\r\n
\r\n
$1A\r\n
\r\n
这将使您的连接保持活动状态,具体取决于服务器配置。由于某些服务器不允许保持活动连接,这可能不起作用。您还可以在尝试立即在Sim900上执行此操作之前,使用telnet测试keep alive

还请注意,请求之间的超时时间在服务器之间有很大差异。有些请求之间只允许几秒钟