📄 server.c
字号:
#include "vxworks.h"
#include "socket.h"
#include "sockLib.h"
#include "inetLib.h"
#include "stdioLib.h"
#include "strLib.h"
#include "hostLib.h"
#include "ioLib.h"
#include "test.h"
#include "msgQLib.h"
/* #include "cfiflash16.h" */
int sfd;
char rmsg[MAX_MSG_SIZE];
struct sockaddr_in saddr;
int socksize= sizeof(struct sockaddr_in);
extern MSG_Q_ID MsgQId1;
struct ip_mreq ipMreq;
int init_server(void)
{
int optval=1, loop=1;
/* creat a socket , use Internet address, udp type, protocol 0 ,return a socket description*/
sfd=socket(AF_INET,SOCK_DGRAM,0);
if(sfd<0){
printf("socket creat error.\n");
return(0);
}
/* clear socket */
bzero((char *)&saddr,socksize);
saddr.sin_family=AF_INET;
saddr.sin_addr.s_addr=htonl(INADDR_ANY);
saddr.sin_port=htons(SERVER_PORT);
/*
if ( setsockopt (sfd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof (optval))<0){
printf("allow multi socket use.\n");
return(0);
}
*/
/* bind a socket with a port */
if(bind(sfd,(struct sockaddr *)&saddr,sizeof(saddr))<0){
printf("bind error.\n");
return(0);
}
/*
if ( setsockopt (sfd, IPPROTO_IP, IP_MULTICAST_LOOP, &loop, sizeof (loop))<0){
printf("MUITICAST LOOP error.\n");
return(0);
}
ipMreq.imr_multiaddr.s_addr = inet_addr("244.0.0.1");
ipMreq.imr_interface.s_addr = htonl (INADDR_ANY);
if ( ipMreq.imr_multiaddr.s_addr == -1){
printf("set multicast address error.\n");
}
if ( setsockopt (sfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&ipMreq,sizeof (ipMreq))<0 ){
printf("add membership error.\n");
return(0);
}
*/
return 1;
}
void task_server( void )
{
int i,n,len;
char *p1,*p2;
p1=malloc(0x200000);
p2=p1;
memset(p1,0x34,0x200000);
init_flash_memory();
init_flash(NULL);
flash_reset();
flash_chip_erase(0);
/* bobflash();*/
init_server( );
while(1){
len=0;
while(1)
{
n=recvfrom(sfd,rmsg,MAX_MSG_SIZE,0,(struct sockaddr*)&saddr,&socksize);
/* msgQSend(MsgQId1,rmsg,n,NO_WAIT,MSG_PRI_NORMAL); */
printf("\nrmsg length is: %x", n);
for (i=0;i<(n-1);i++){
*p1 = rmsg[i+1];
p1++;
len++;
}
if (len==0x180000)
break;
if (rmsg[0]==1)
break;
}
/* for intel 28f016b3b*/
/*
*(unsigned long *)(0x47010110)=0x70001001;
readID( );
i28f016Erase(1,17);
i28f016Write(0,(void *)p2,0x80000);
*/
/* for amd AM29LV160DB*/
flash_reset();
flash_chip_erase(0);
bob_flash_write(0,0, p2,0x100000,0);
printf("ok\n");
bob_flash_verify(0,0,p2,0x100000,0);
printf("ok\n");
p1=p2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -