一个简单的网络通信程序

来源:互联网 发布:网络医疗美容咨询 编辑:程序博客网 时间:2024/06/05 15:05

服务器端:

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<ctype.h>int main(){   int listenfd;   listenfd=socket(AF_INET,SOCK_STREAM,0);   struct sockaddr_in servaddr;   memset(&servaddr,0,sizeof(servaddr));   servaddr.sin_family=AF_INET;   servaddr.sin_port=htons(5188);   servaddr.sin_addr.s_addr=htonl(INADDR_ANY);   bind(listenfd,(struct sockaddr*)&servaddr,sizeof(servaddr));   listen(listenfd,20);   struct sockaddr_in cliaddr;   socklen_t cliaddr_len;   int connfd=accept(listenfd,(struct sockaddr*)&cliaddr,&cliaddr_len);   int MAX=128;   char recvbuf[MAX];   while(1)   {      memset(recvbuf,0,MAX);      int n=read(connfd,recvbuf,MAX);      if(n==0)break;      fputs(recvbuf,stdout);      for(int i=0;i<n;i++)recvbuf[i]=toupper(recvbuf[i]);      write(connfd,recvbuf,n);        }   close(connfd);   close(listenfd);}
客户端
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<ctype.h>int main(){   int sockfd;   sockfd=socket(AF_INET,SOCK_STREAM,0);   struct sockaddr_in servaddr;   memset(&servaddr,0,sizeof(servaddr));   servaddr.sin_family=AF_INET;   servaddr.sin_port=htons(5188);   servaddr.sin_addr.s_addr=inet_addr("127.0.0.1");   connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));   int MAX=128;   char recvbuf[MAX];   char sendbuf[MAX];   while(fgets(sendbuf,MAX,stdin))   {      write(sockfd,sendbuf,strlen(sendbuf));      int n=read(sockfd,recvbuf,MAX);      fputs(recvbuf,stdout);      memset(recvbuf,0,MAX);      memset(recvbuf,0,MAX);       }   close(sockfd);}


原创粉丝点击