Just a very very basic Test Programm to Send TCP Packets...

Dependencies:   EthernetNetIf mbed

Committer:
dominik
Date:
Sun Jan 02 11:50:25 2011 +0000
Revision:
0:6df434dd2e1e

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dominik 0:6df434dd2e1e 1 #include "mbed.h"
dominik 0:6df434dd2e1e 2 #include "EthernetNetIf.h"
dominik 0:6df434dd2e1e 3 #include "TCPSocket.h"
dominik 0:6df434dd2e1e 4
dominik 0:6df434dd2e1e 5 EthernetNetIf eth(
dominik 0:6df434dd2e1e 6 IpAddr(192,168,1,2), //IP Address
dominik 0:6df434dd2e1e 7 IpAddr(255,255,255,0), //Network Mask
dominik 0:6df434dd2e1e 8 IpAddr(192,168,1,1), //Gateway
dominik 0:6df434dd2e1e 9 IpAddr(192,168,1,1) //DNS
dominik 0:6df434dd2e1e 10 );
dominik 0:6df434dd2e1e 11
dominik 0:6df434dd2e1e 12 TCPSocket tcp;
dominik 0:6df434dd2e1e 13
dominik 0:6df434dd2e1e 14 void onTCPSocketEvent(TCPSocketEvent e)
dominik 0:6df434dd2e1e 15 {
dominik 0:6df434dd2e1e 16 switch(e)
dominik 0:6df434dd2e1e 17 {
dominik 0:6df434dd2e1e 18 case TCPSOCKET_CONNECTED:
dominik 0:6df434dd2e1e 19 printf("Connected\n");
dominik 0:6df434dd2e1e 20 break;
dominik 0:6df434dd2e1e 21
dominik 0:6df434dd2e1e 22 case TCPSOCKET_ACCEPT:
dominik 0:6df434dd2e1e 23 printf("Accepted\n");
dominik 0:6df434dd2e1e 24 break;
dominik 0:6df434dd2e1e 25
dominik 0:6df434dd2e1e 26 case TCPSOCKET_READABLE:
dominik 0:6df434dd2e1e 27 printf("Readable\n");
dominik 0:6df434dd2e1e 28 break;
dominik 0:6df434dd2e1e 29
dominik 0:6df434dd2e1e 30 case TCPSOCKET_WRITEABLE:
dominik 0:6df434dd2e1e 31 printf("Writeable\n");
dominik 0:6df434dd2e1e 32 break;
dominik 0:6df434dd2e1e 33
dominik 0:6df434dd2e1e 34 case TCPSOCKET_CONTIMEOUT:
dominik 0:6df434dd2e1e 35 printf("Timeout\n");
dominik 0:6df434dd2e1e 36 break;
dominik 0:6df434dd2e1e 37
dominik 0:6df434dd2e1e 38 case TCPSOCKET_CONRST:
dominik 0:6df434dd2e1e 39 printf("Reset\n");
dominik 0:6df434dd2e1e 40 break;
dominik 0:6df434dd2e1e 41 case TCPSOCKET_CONABRT:
dominik 0:6df434dd2e1e 42 printf("Aborted\n");
dominik 0:6df434dd2e1e 43 break;
dominik 0:6df434dd2e1e 44
dominik 0:6df434dd2e1e 45 case TCPSOCKET_ERROR:
dominik 0:6df434dd2e1e 46 printf("Error\n");
dominik 0:6df434dd2e1e 47 break;
dominik 0:6df434dd2e1e 48
dominik 0:6df434dd2e1e 49 case TCPSOCKET_DISCONNECTED:
dominik 0:6df434dd2e1e 50 printf("Disconnected\n");
dominik 0:6df434dd2e1e 51 tcp.close();
dominik 0:6df434dd2e1e 52 break;
dominik 0:6df434dd2e1e 53 }
dominik 0:6df434dd2e1e 54 }
dominik 0:6df434dd2e1e 55
dominik 0:6df434dd2e1e 56 int main()
dominik 0:6df434dd2e1e 57 {
dominik 0:6df434dd2e1e 58 printf("Welcome to wireFUSE\n");
dominik 0:6df434dd2e1e 59 printf("Setting up...\n");
dominik 0:6df434dd2e1e 60 EthernetErr ethErr = eth.setup();
dominik 0:6df434dd2e1e 61 if(ethErr)
dominik 0:6df434dd2e1e 62 {
dominik 0:6df434dd2e1e 63 printf("Error %d in setup.\n", ethErr);
dominik 0:6df434dd2e1e 64 return -1;
dominik 0:6df434dd2e1e 65 }
dominik 0:6df434dd2e1e 66 printf("Setup OK\n");
dominik 0:6df434dd2e1e 67
dominik 0:6df434dd2e1e 68 tcp.setOnEvent(&onTCPSocketEvent);
dominik 0:6df434dd2e1e 69 Host server(IpAddr(192, 168, 1, 1), 12345);
dominik 0:6df434dd2e1e 70
dominik 0:6df434dd2e1e 71 Timer tmr;
dominik 0:6df434dd2e1e 72 tmr.start();
dominik 0:6df434dd2e1e 73 while(true)
dominik 0:6df434dd2e1e 74 {
dominik 0:6df434dd2e1e 75 Net::poll();
dominik 0:6df434dd2e1e 76 if(tmr.read() > 3)
dominik 0:6df434dd2e1e 77 {
dominik 0:6df434dd2e1e 78 tmr.reset();
dominik 0:6df434dd2e1e 79 printf("\nSocket verbinden...\n");
dominik 0:6df434dd2e1e 80
dominik 0:6df434dd2e1e 81
dominik 0:6df434dd2e1e 82 TCPSocketErr bindErr = tcp.connect(server);
dominik 0:6df434dd2e1e 83 if(bindErr == 0)
dominik 0:6df434dd2e1e 84 {
dominik 0:6df434dd2e1e 85 printf("Socket verbunden..");
dominik 0:6df434dd2e1e 86 }
dominik 0:6df434dd2e1e 87 else
dominik 0:6df434dd2e1e 88 {
dominik 0:6df434dd2e1e 89 printf("Verbindungsfehler %i", bindErr);
dominik 0:6df434dd2e1e 90 }
dominik 0:6df434dd2e1e 91
dominik 0:6df434dd2e1e 92
dominik 0:6df434dd2e1e 93 const char* str = "Testdaten zum Senden: 1234567890abc...";
dominik 0:6df434dd2e1e 94 int err = tcp.send(str, strlen(str));
dominik 0:6df434dd2e1e 95 if(err < 0)
dominik 0:6df434dd2e1e 96 {
dominik 0:6df434dd2e1e 97 printf("Fehler beim Senden der Daten!\n");
dominik 0:6df434dd2e1e 98 }
dominik 0:6df434dd2e1e 99 else
dominik 0:6df434dd2e1e 100 {
dominik 0:6df434dd2e1e 101 printf("Daten gesendet : %s\n", str);
dominik 0:6df434dd2e1e 102 }
dominik 0:6df434dd2e1e 103 }
dominik 0:6df434dd2e1e 104 }
dominik 0:6df434dd2e1e 105 }