Download src/b.cpp from HelloSun/dosmqtt: direct link, hf CLI and curl.
- Browser
- Download file 1.35 kB
-
https://huggingface.co/spaces/HelloSun/dosmqtt/resolve/main/src/b.cpp
- Command line
-
hf download hf://spaces/HelloSun/dosmqtt/src/b.cpp
-
curl -L -o b.cpp https://huggingface.co/spaces/HelloSun/dosmqtt/resolve/main/src/b.cpp
1.35 kB
| // B.EXE - run once: connect, publish one message containing the DOS clock | |
| // time, disconnect, exit. | |
| // Usage: B <broker> <port> <topic> (or MQTT_HOST/MQTT_PORT/MQTT_TOPIC in the environment) | |
| int main( int argc, char *argv[] ) { | |
| uint8_t pkt[256]; | |
| char who[16], now[16], text[64]; | |
| const char *host; uint16_t port; const char *topic; | |
| if ( parseTarget( argc, argv, &host, &port, &topic ) ) { | |
| printf( "Usage: B <broker> <port> <topic>\n or set MQTT_HOST, MQTT_PORT and MQTT_TOPIC\n" ); | |
| return 1; | |
| } | |
| if ( netInit( ) ) { printf( "TCP/IP init failed (is the packet driver loaded?)\n" ); return 2; } | |
| TcpSocket *s = openBroker( host, port ); | |
| if ( !s ) netShutdown( 3 ); | |
| makeClientId( who, "dosB" ); | |
| int n = buildConnect( pkt, who ); | |
| s->send( pkt, n ); | |
| if ( waitFor( s, 2, 10000 ) ) { printf( "MQTT: CONNECT refused or timed out\n" ); netShutdown( 4 ); } | |
| stamp( now ); | |
| sprintf( text, "Hello from DOS B at %s", now ); | |
| n = buildPublish( pkt, topic, text ); | |
| s->send( pkt, n ); | |
| printf( "[%s] B sent: %s\n", now, text ); | |
| pkt[0] = 0xE0; pkt[1] = 0; // DISCONNECT | |
| s->send( pkt, 2 ); | |
| sleepTicks( 400, 1 ); // let the data and FIN go out | |
| s->close( ); | |
| sleepTicks( 300, 1 ); | |
| TcpSocketMgr::freeSocket( s ); | |
| netShutdown( 0 ); | |
| return 0; | |
| } | |