232-tcp.c

来自「2004年黄河R3000最终程序!个人编写」· C语言 代码 · 共 100 行

C
100
字号
#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 + =
减小字号Ctrl + -
显示快捷键?