//mpMain.c
//
//This contains mpUsrRoot which is the entry point for your MotoPlus application
//ADDITIONAL INCLUDE FILES
//(Note that motoPlus.h should be included in every source file)
#include "motoPlus.h"
void mpUsrRoot(int arg1, int arg2, int arg3, int arg4, int arg5,
int arg6, int arg7, int arg8, int arg9, int arg10)
{
unsigned int run_cnt;
run_cnt = 0;
while (1)
{
mpTaskDelay(2500);
printf("mpUsrRoot task Runing![%d]\n",run_cnt);
run_cnt++;
}
mpExitUsrRoot; }
/ for GLOBAL DATA DEFINITIONS
SEM_ID semid;
// for IMPORT API & FUNCTIONS
extern void moto_plus0_task(void);
// for LOCAL DEFINITIONS
static int tid1;
void mpUsrRoot(int arg1, int arg2, int arg3, int arg4, int arg5,
int arg6, int arg7, int arg8, int arg9, int arg10)
{
tid1 = mpCreateTask(MP_PRI_TIME_NORMAL, MP_STACK_SIZE, (FUNCPTR)moto_plus0_task,
arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
semid = mpSemBCreate(SEM_Q_FIFO, SEM_EMPTY);
puts("Exit mpUsrRoot!");
mpExitUsrRoot; //(or) mpSuspendSelf;
}
#include "motoPlus.h"
// for API & FUNCTIONS
void moto_plus0_task(void);
void ap_TCP_Sserver(ULONG portNo);
#define PORT 11000
#define BUFF_MAX 1023
void moto_plus0_task(void)
{
puts("Activate moto_plus0_task!");
ap_TCP_Sserver(PORT);
mpSuspendSelf;
}
char *strupr(char *string);
void ap_TCP_Sserver(ULONG portNo)
{
int sockHandle;
struct sockaddr_in serverSockAddr;
int rc;
printf("Simple TCP server\n");
sockHandle = mpSocket(AF_INET, SOCK_STREAM, 0);
if (sockHandle < 0)
return;
memset(&serverSockAddr, 0, sizeof(serverSockAddr));
serverSockAddr.sin_family = AF_INET;
serverSockAddr.sin_addr.s_addr = INADDR_ANY;
serverSockAddr.sin_port = mpHtons(portNo);
rc = mpBind(sockHandle, (struct sockaddr *)&serverSockAddr, sizeof(serverSockAddr));
if (rc < 0)
goto closeSockHandle;
rc = mpListen(sockHandle, SOMAXCONN);
if (rc < 0)
goto closeSockHandle;
while (1)
{
int acceptHandle;
struct sockaddr_in clientSockAddr;
int sizeofSockAddr;
memset(&clientSockAddr, 0, sizeof(clientSockAddr));
sizeofSockAddr = sizeof(clientSockAddr);
acceptHandle = mpAccept(sockHandle, (struct sockaddr *)&clientSockAddr, &sizeofSockAddr);
if (acceptHandle < 0)
break;
while( 1 )
{
int bytesRecv;
int bytesSend;
char buff[BUFF_MAX + 1];
memset(buff, 0, sizeof(buff));
bytesRecv = mpRecv(acceptHandle, buff, BUFF_MAX, 0);
if (bytesRecv < 0)
break;
strupr(buff);
bytesSend = mpSend(acceptHandle, buff, bytesRecv, 0);
if (bytesSend != bytesRecv)
break;
if (strncmp(buff, "EXIT", 4) == 0 || strncmp(buff, "exit", 4) == 0)
break;
}
mpClose(acceptHandle);
}
closeSockHandle:
mpClose(sockHandle);
return;
}
char *strupr(char *string)
{
int i;
int len;
len = strlen(string);
for (i=0; i < len; i++)
{
if (isalpha((unsigned char)string[i]))
{
string[i] = toupper(string[i]);
}
}
return (string);
}
#include "stdafx.h"
#include <winsock2.h>
#define PORT 11000
#define BUFF_MAX 1023
int _tmain(int argc, _TCHAR* argv[])
{
SOCKET sockHandle;
struct sockaddr_in serverSockAddr;
int cntRcvSnd;
int rc;
WSADATA data;
char keyInBuff[128];
unsigned short portNo;
printf("Simple TCP client\n");
printf(" Please type PORT No. >");
fgets(keyInBuff, 128, stdin);
portNo = atoi(keyInBuff);
WSAStartup(MAKEWor(2,0), &data);
if ((sockHandle = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
printf("Error : socket() rc = %d\n", sockHandle);
exit(1);
}
memset(&serverSockAddr, 0, sizeof(serverSockAddr));
serverSockAddr.sin_family = AF_INET;
printf(" Please type IP addr. >");
fgets(keyInBuff, 128, stdin);
serverSockAddr.sin_addr.s_addr = inet_addr(keyInBuff);
serverSockAddr.sin_port = htons(portNo);
rc = connect(sockHandle, (struct sockaddr *)&serverSockAddr, sizeof(serverSockAddr));
if (rc < 0)
{
printf("Error : connect() rc = %d\n", rc);
goto closeSockHandle;
}
printf(" Please type the ASCII characters\n");
printf(" > ");
cntRcvSnd = 0;
while (1)
{
int bytesKeyin;
int bytesSend;
int bytesRecv;
char buff[BUFF_MAX + 1];
fgets(buff, BUFF_MAX, stdin);
bytesKeyin = strlen(buff);
bytesSend = send(sockHandle, buff, bytesKeyin, 0);
if (bytesSend != bytesKeyin)
{
printf("Error : send() rc = %d\n", bytesSend);
break;
}
cntRcvSnd++;
printf("send(%d) : %s", cntRcvSnd, buff);
bytesRecv = recv(sockHandle, buff, bytesSend, 0);
if (bytesRecv < 0)
{
printf("Error : recv() rc = %d\n", bytesRecv);
break;
}
cntRcvSnd++;
buff[bytesRecv] = '\0';
printf("recv(%d) : %s", cntRcvSnd, buff);
if ((strncmp(buff, "EXIT\n", 5) == 0) || (strncmp(buff, "exit\n", 5) == 0))
{
break;
}
printf(" > ");
}
closeSockHandle:
if (sockHandle >= 0)
{
closesocket(sockHandle);
}
WSACleanup();
exit(0);
}