| 这是一个基于嵌入式Linux的网络通信系统, 
 压缩包中包含程序源代码和文档,内容详细。
 
 
 
 
 
 
 
 
 0.png (51.3 KB, 下载次数: 49)
 
 
 下载附件
 
 保存到相册
 
 
 
 
 2017-5-3 01:06 上传
 
 
 
 
 
 
 
 
 
 资料下载:
 
 
 
 
 
 
 
 基于嵌入式Linux的网络通信系统.rar
 
 (102.02 KB, 下载次数: 48)
 
 
 
 2017-5-2 10:59 上传
 点击文件名下载附件
 
 下载积分: 黑币 -5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 服务端源程序:
 
 #include<stdio.h>
 
 #include<stdlib.h>
 
 #include<errno.h>
 
 #include<string.h>
 
 #include<sys/types.h>
 
 #include<netinet/in.h>
 
 #include<sys/socket.h>
 
 #include<sys/wait.h>
 
 #include<unistd.h>
 
 #include<arpa/inet.h>
 
 #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(&quot;socket&quot;);
 
 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(&quot;bind&quot;);
 
 exit(EXIT_FAILURE);
 
 }
 
 if(listen(sockfd,lisnum)==-1)
 
 {
 
 perror(&quot;listen&quot;);
 
 exit(EXIT_FAILURE);
 
 }
 
 printf(&quot;wait for connect!\n&quot;);
 
 len=sizeof(struct sockaddr);
 
 if((new_fd=accept(sockfd,(struct sockaddr *)&their_addr,&len))==-1)
 
 {
 
 perror(&quot;accept&quot;);
 
 exit(EXIT_FAILURE);
 
 }
 
 else
 
 printf(&quot;server:got connection from %s,port %d,socket %d\n&quot;,inet_ntoa(their_addr.sin_addr),ntohs(their_addr.sin_port),new_fd);
 
 while(1)
 
 {
 
 printf(&quot;newfd=%d\n&quot;,new_fd);
 
 bzero(buf,MAXBUF+1);
 
 printf(&quot;input the message to send:&quot;);
 
 fgets(buf,MAXBUF,stdin);
 
 if(!strncasecmp(buf,&quot;quit&quot;,4))
 
 {
 
 printf(&quot;i will close the connect!\n&quot;);
 
 break;
 
 }
 
 len=send(new_fd,buf,strlen(buf)-1,0);
 
 if(len>0)
 
 printf(&quot;message:%s\t send sucessful,send %dbyte!\n&quot;,buf,len);
 
 else
 
 {
 
 printf(&quot;message'%s' send failure!errno code is %d,errno message is '%s'\n&quot;,buf,errno,strerror(errno));
 
 break;
 
 }
 
 bzero(buf,MAXBUF+1);
 
 len=recv(new_fd,buf,MAXBUF,0);
 
 if(len>0)
 
 printf(&quot;message recv successful:'%s',%dByte recv\n&quot;,buf,len);
 
 else
 
 {
 
 if(len<0)
 
 printf(&quot;recv failure!errno code is %d,errno message is '%s'\n&quot;,errno,strerror(errno));
 
 else
 
 printf(&quot;the other one close quit\n&quot;);
 
 break;
 
 }
 
 
 
 
 
 …………限于本文篇幅 余下代码请从51hei下载附件…………
 
 复制代码
 |