linux下TCP socket

来源:互联网 发布:淘宝纯银首饰 编辑:程序博客网 时间:2024/05/18 00:07

客户端向服务端发送信息,服务端将客户端发送的信息回送给客户端。

server.c

//server.c#include<stdio.h>#include<memory.h>#include<stdlib.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>int main(void){    int listenfd,connfd;struct sockaddr_in ser_addr;struct sockaddr_in cli_addr;char buf[80];int len;        int cli_len=sizeof(cli_addr);memset(&ser_addr,0,sizeof(ser_addr));ser_addr.sin_family=AF_INET;ser_addr.sin_addr.s_addr=(INADDR_ANY);ser_addr.sin_port=htons(10001);if((listenfd=socket(AF_INET,SOCK_STREAM,0))<0){   printf("socket() error!\n");   exit(0);}if(bind(listenfd,(struct sockaddr *)&ser_addr,sizeof(ser_addr))<0){   printf("bind() error!\n");   exit(0);}if(listen(listenfd,20)){   printf("listen() error!\n");   exit(0);}//connfd=accept(listenfd,(struct sockaddr *)&cli_addr,&(sizeof(struct sockaddr)));connfd=accept(listenfd,(struct sockaddr *)&cli_addr,&cli_len);while(1){   if((len=recv(connfd,buf,80,0))>0)   {      buf[len]='\0';   }           printf("client:%s\n",buf);   send(connfd,buf,sizeof(buf),0);        //   printf("server:%s\n",buf);}        close(connfd);close(listenfd);}
client.c

#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>int main(void){   int serverfd;   struct sockaddr_in ser_addr;   ser_addr.sin_family=AF_INET;   ser_addr.sin_addr.s_addr=inet_addr("127.0.0.1");   ser_addr.sin_port=htons(10001);   char str[80];   int len;   serverfd=socket(AF_INET,SOCK_STREAM,0);   connect(serverfd,(struct sockaddr *)&ser_addr,sizeof(ser_addr));   while(1)   {      printf("Client:");  scanf("%s",str);  send(serverfd,str,sizeof(str),0);  len=recv(serverfd,str,80,0);  str[len]='\0';  printf("Server:%s\n",str);   }   close(serverfd);}




0 0