这是一个基于嵌入式Linux的网络通信系统,
压缩包中包含程序源代码和文档,内容详细。
资料下载:
基于嵌入式Linux的网络通信系统.rar
服务端源程序:
- #include
- #include
- #include
- #include
- #include
- #includetinet/in.h>
- #include
- #include
- #include
- #include
- #define MAXBUF 1024
- int main(int argc,char *argv[])
- {
- int pid;
- int sockfd,new_fd;
- socklen_t len;
- struct sockaddr_in my_addr,their_addr;
- unsigned int myport,lisnum;
- char buf[MAXBUF+1];
- if(argv[2])
- myport=atoi(argv[2]);
- else
- myport=7575;
- if(argv[3])
- lisnum=atoi(argv[3]);
- else
- lisnum=5;
- if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
- {
- perror("socket");
- exit(EXIT_FAILURE);
- }
- bzero(&my_addr,sizeof(my_addr));
- my_addr.sin_family=AF_INET;
- my_addr.sin_port=htons(myport);
- if(argv[1])
- my_addr.sin_addr.s_addr=inet_addr(argv[1]);
- else
- my_addr.sin_addr.s_addr=INADDR_ANY;
- if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1)
- {
- perror("bind");
- exit(EXIT_FAILURE);
- }
- if(listen(sockfd,lisnum)==-1)
- {
- perror("listen");
- exit(EXIT_FAILURE);
- }
- printf("wait for connect!n");
- len=sizeof(struct sockaddr);
- if((new_fd=accept(sockfd,(struct sockaddr *)&their_addr,&len))==-1)
- {
- perror("accept");
- exit(EXIT_FAILURE);
- }
- else
- printf("server:got connection from %s,port %d,socket %dn",inet_ntoa(their_addr.sin_addr),ntohs(their_addr.sin_port),new_fd);
- while(1)
- {
- printf("newfd=%dn",new_fd);
- bzero(buf,MAXBUF+1);
- printf("input the message to send:");
- fgets(buf,MAXBUF,stdin);
- if(!strncasecmp(buf,"quit",4))
- {
- printf("i will close the connect!n");
- break;
- }
- len=send(new_fd,buf,strlen(buf)-1,0);
- if(len>0)
- printf("message:%st send sucessful,send %dbyte!n",buf,len);
- else
- {
- printf("message'%s' send failure!errno code is %d,errno message is '%s'n",buf,errno,strerror(errno));
- break;
- }
- bzero(buf,MAXBUF+1);
- len=recv(new_fd,buf,MAXBUF,0);
- if(len>0)
- printf("message recv successful:'%s',%dByte recvn",buf,len);
- else
- {
- if(len<0)
- printf("recv failure!errno code is %d,errno message is '%s'n",errno,strerror(errno));
- else
- printf("the other one close quitn");
- break;
- }
- …………限于本文篇幅 余下代码请从下载附件…………
|