嵌入式学习小组
直播中

杨超

7年用户 168经验值
私信 关注

基于嵌入式Linux的网络通信系统(源代码+报告文档)

这是一个基于嵌入式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;
  •                 }
  • …………限于本文篇幅 余下代码请从下载附件…………




更多回帖

发帖
×
20
完善资料,
赚取积分