UDP通信のサンプルプログラム
Dependencies: EthernetInterface mbed-rtos mbed
main.cpp
- Committer:
- yusuke_kyo
- Date:
- 2015-04-06
- Revision:
- 1:617727625d66
- Parent:
- 0:e0ec056e8895
File content as of revision 1:617727625d66:
/*UDP通信サンプルコード
自分:mbedAから相手:mbedBへのデータ送信方法、相手:mbedBから自分:mbedAへのデータ受信方法*/
#include "mbed.h"
#include "EthernetInterface.h"
Serial pc(USBTX, USBRX); // tx, rx
const char* A_ADDRESS = "192.168.1.1";
const int A_PORT = 1000;
const char* B_ADDRESS = "192.168.1.2";
const int B_PORT = 2000;
int main() {
char u_packet[2];
u_packet[0]=0x41; u_packet[1]=0x42; //ex.
char u_buff[10];
EthernetInterface eth;
eth.init(A_ADDRESS, "255.255.255.0", ""); // Use hard IP
pc.printf("IP : %s\n", eth.getIPAddress());
if (eth.connect() < 0) {
pc.printf("Failed to connect\n\r");
return -1;
}
UDPSocket sockA;
if (sockA.bind(A_PORT) < 0) {
pc.printf("Failed to bind UDP Socket to PORT : %d\n\r", A_PORT);
return -1;
}
else pc.printf("Bind UDP Socket to PORT : %d\n\r", A_PORT);
sockA.set_blocking(false);
Endpoint EndpointA;
EndpointA.set_address(A_ADDRESS, A_PORT);
Endpoint EndpointB;
EndpointB.set_address(B_ADDRESS, B_PORT);
/*-----------
MAIN ROOP
-----------*/
while(1) {
/*--send--*/
pc.printf("Send : %s\n", u_packet);
int n_send=sockA.sendTo(EndpointB, (char*)u_packet, sizeof(u_packet));
wait_ms(1);
if(n_send < 0){
pc.printf("Sent unsuccessfully\n");
return 0;
}
else pc.printf("Sent %d bytes Successfully!\n",n_send);
/*-receive--*/
int n_receive=sockA.receiveFrom(EndpointB, (char*)u_buff, sizeof(u_buff));
wait_ms(1);
if(n_receive < 0){
pc.printf("Received unsuccessfully\n");
return 0;
}
else {
pc.printf("Received %d byte Successfully!\n",n_receive);
pc.printf("Received : %s\n",u_buff);
}
}
sockA.close(false);
eth.disconnect();
return 0;
}