|
透传其实就是 WIFI收到的数据直接写回串口,串口收到的收据直接从WIFI发出去;
如果你要使用TCP方式进行连接,除了连接到WIFI外,还需要建立TCP连接:
第一步:TCP连接有两种方式,一种是自己是SERVER,客户端连接你;另一种是你是CLIENT,去连接服务器;
以自己为CLIENT方式为例讲解一下:
bool connectedToServer;
WiFiClient tcpClient;
tcpClient.connect("192.168.1.1",8888); //第一个参数是服务器IP(String),第二个参数是端口号(int)
delay(1000);
if (!connectedToServer) //循例打印一下连接状态信息,帮助排错
{
Serial.println(F("Connection failed!"));
return;
}
if (connectedToServer)
{
tcpClient.keepAlive();
Serial.println(F("Connection OK"));
}
以上,就连接好TCP的服务器了,当然,前提是你的服务器已经开启;
然后,你要实现透传,就要在LOOP中做一些数据读取和写入的代码:
void loop()
{
//扫描串口数据
if (Serial.available())
{
delay(50); //待缓冲区稳定
size_t len = Serial.available();
uint8_t *sbuf = NULL;
sbuf = (uint8_t*)malloc(sizeof(uint8_t) * len);
Serial.readBytes(sbuf, len);
if (tcpClient.connected())
{
tcpClient.write(sbuf, len);
}
if (NULL != sbuf)
{
free(sbuf);
sbuf = NULL;
}
}
//扫描网络数据,传回串口中
if (tcpClient.available())
{
while (tcpClient.available())
{
Serial.write(tcpClient.read());
}
}
delay(1);
}
这样就可以了,当然详细你就要自己动手实践一下。
|
|