MiMicSDK Tcp client socket sample program.
Dependencies: NyFileSystems libMiMic mbed-rtos mbed
Fork of WebSocketSample by
main.cpp
00001 /** 00002 * @file 00003 * TCP client socket sample.<br/> 00004 * This program is to test of TCP client. 00005 * Connect to a TCP server, and send back the received data as is. 00006 * 00007 */ 00008 #include "mbed.h" 00009 #include "rtos.h" 00010 #include "SDFileSystem.h" 00011 #include "mimic.h" 00012 #include "utils/PlatformInfo.h" 00013 #include "fsdata.h" 00014 00015 00016 NetConfig cfg; //create network configulation 00017 Net* net; 00018 00019 DigitalOut led1(LED1); 00020 DigitalOut led2(LED2); 00021 DigitalOut led3(LED3); 00022 DigitalOut led4(LED4); 00023 00024 00025 int main() 00026 { 00027 MiMicNetIf netif; 00028 Net net(netif);//Net constructor must be created after started RTOS 00029 NetConfig cfg; //create network configulation 00030 // manual setting 00031 cfg.setIpAddr(192,168,128,39); 00032 cfg.setNetMask(255,255,255,0); 00033 cfg.setGateway(192,168,128,254); 00034 cfg.setSrvUPnP(false); 00035 cfg.setSrvMdns(false); 00036 00037 // Create tcp socket with 512 bytes RX buffer. 00038 // Socket must create between "net.start" with "new Net()" 00039 TcpSocket* socket=new TcpSocket(); 00040 00041 //Start network 00042 net.start(cfg); 00043 00044 00045 led1=1; 00046 for(;;){ 00047 //connect to server 00048 if(!socket->connect(IpAddr(192,168,128,195),1234)){ 00049 Thread::wait(1000); 00050 } 00051 //connected! 00052 led2=1; 00053 for(;;){ 00054 led4=0; 00055 led3=1; 00056 //wait for data... 00057 const void* rx; 00058 //get read pointer 00059 int l=socket->precv(rx); 00060 if(l<0){ 00061 break; 00062 } 00063 if(l==0){ 00064 //timeout 00065 }else{ 00066 //ok,echo back data. 00067 led4=1; 00068 //send data 00069 if(!socket->send(rx,l)){ 00070 break; 00071 } 00072 //move read pointer. 00073 socket->pseek(l); 00074 } 00075 led3=0; 00076 } 00077 led2=0; 00078 led3=0; 00079 led4=0; 00080 socket->close(); //close the socket. 00081 } 00082 return 0; 00083 } 00084
Generated on Mon Jul 18 2022 01:40:29 by 1.7.2