📄 232-tcp.c
字号:
#define CINBUFSIZE 255
#define COUTBUFSIZE 255
#define MY_IP_ADDRESS "202.206.44.8"
#define MY_NETMASK "255.255.255.0"
int rxlen;
int txlen;
unsigned char rxbuf[CINBUFSIZE];
unsigned char txbuf[COUTBUFSIZE];
#define PORT 6348
#memmap xmem
#use "dcrtcp.lib"
void msecDelay(unsigned long d)
{
unsigned long timestamp;
timestamp=MS_TIMER;
while(MS_TIMER<timestamp+d)
{
;
}
}
main()
{
int bytes_read;
char buffer[100];
long t;
tcp_Socket socket;
t=SEC_TIMER;
//brdInit(); //required for BL2000 series boards
sock_init();
serCopen(115200);
// serMode(0); //3线RS232
serCwrFlush();
serCrdFlush();
WrPortI ( PBDR,NULL,0x80 ); // PD3 Output
BitWrPortI(PBDR, &PBDRShadow,0, 7);
tcp_listen(&socket,PORT,0,0,NULL,0);
printf("Waiting for connection...\n");
while(!sock_established(&socket) && sock_bytesready(&socket)==-1)
tcp_tick(NULL);
printf("Connection received...\n");
BitWrPortI(PBDR, &PBDRShadow,1, 7);
while(1) //整体程序大循环
{
if(pd_havelink(0)==0)
{
serCwrFlush();
serCrdFlush();
BitWrPortI(PBDR, &PBDRShadow,0, 7);
tcp_listen(&socket,PORT,0,0,NULL,0);
printf("Waiting for connection...\n");
while(!sock_established(&socket) && sock_bytesready(&socket)==-1)
tcp_tick(NULL);
printf("Connection received...\n");
BitWrPortI(PBDR, &PBDRShadow,1, 7);
}
do
{
memset(rxbuf,0,CINBUFSIZE);
rxlen=serCread(rxbuf,36,3);
if (rxlen>0)
{
printf("%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x\n",
rxbuf[0],rxbuf[1],rxbuf[2],rxbuf[3],rxbuf[4],rxbuf[5],rxbuf[6],rxbuf[7],rxbuf[8],rxbuf[9]);
if(sock_fastwrite(&socket,rxbuf,rxlen)==-1)
{
serCwrFlush();
serCrdFlush();
BitWrPortI(PBDR, &PBDRShadow,0, 7);
tcp_listen(&socket,PORT,0,0,NULL,0);
printf("Waiting for connection...\n");
while(!sock_established(&socket) && sock_bytesready(&socket)==-1)
tcp_tick(NULL);
printf("Connection received...\n");
BitWrPortI(PBDR, &PBDRShadow,1, 7);
}
}
}while(tcp_tick(&socket));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -