简单实现服务器/客户端的c代码

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 #include<sys/types.h>
 5 #include<sys/socket.h>
 6 #include<netinet/in.h>
 7 #include <unistd.h>
 8 
 9 int main() {
10     /* socket */
11     int soc_ser_l=socket(PF_INET,SOCK_STREAM,0);
12     
13     /* creat server sockaddr_in */
14     struct sockaddr_in ser_addr;
15     ser_addr.sin_family=AF_INET;
16     ser_addr.sin_addr.s_addr=htonl(INADDR_ANY);
17     ser_addr.sin_port=htons(8888);
18     memset(ser_addr.sin_zero,0,8);
19     
20     /* bind connect socket and ip/port */
21     if(bind(soc_ser_l,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1)
22     {
23         printf("bind error");
24         return 0;
25     }
26     
27     /* listen */
28     if(listen(soc_ser_l,20)==-1)
29     {
30         printf("listen error");
31         return 0;
32     }
33     /* creat items */
34     int soc_ser_t;
35     struct sockaddr_in cli_addr;
36     while (1){
37         /* accept */
38         int len=sizeof(ser_addr);
39         soc_ser_t=accept(soc_ser_l,(struct sockaddr *)&cli_addr,&len);
40         if(soc_ser_t==-1){
41             perror("accept error");
42             exit(1);
43         }
44 
45         /* recv data */
46         char recv_buf[255];
47         int ret=recv(soc_ser_t,recv_buf,255,0);
48         if(ret>0){
49             recv_buf[ret]='\0';
50             printf("server recv:");
51             printf("%s\n",recv_buf);
52         }
53         
54         /* send data  */
55         char send_msg_str[100];
56         printf("server send:");
57         fgets(send_msg_str,100,stdin);
58         *(strchr(send_msg_str,'\n'))='\0';
59         send(soc_ser_t,send_msg_str,strlen(send_msg_str),0);
60         close(soc_ser_t);
61     }
62         
63     close(soc_ser_l);
64     return 0;
65 }
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<sys/types.h>
 4 #include<sys/socket.h>
 5 #include<netinet/in.h>
 6 #include <arpa/inet.h>
 7 #include <unistd.h>
 8 
 9 int main(){
10     /* creat client socket */
11     int soc_cli=socket(PF_INET,SOCK_STREAM,0);
12     /* creat server sockaddr_in */
13     struct sockaddr_in ser_addr;
14     ser_addr.sin_family=PF_INET;
15     ser_addr.sin_addr.s_addr=inet_addr("192.168.195.129");
16     ser_addr.sin_port=htons(8888);//8888 port number has no ""
17     memset(ser_addr.sin_zero,0,8);
18 
19 
20     /* connect */
21     if(connect(soc_cli,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-1){
22         printf("connect error");
23         return 0;
24         }
25 
26         
27     /* send */
28     char cli_send_str[100];
29     printf("client send:");
30     fgets(cli_send_str,100,stdin);
31     *(strchr(cli_send_str,'\n'))='\0';
32 
33     send(soc_cli,cli_send_str,strlen(cli_send_str),0);
34 
35     /* recv */
36     char cli_recv[255];
37     int ret=recv(soc_cli,cli_recv,255,0);
38     if(ret>0){
39         cli_recv[ret]='\0';
40         printf("client recv:");
41         printf("%s\n",cli_recv);
42         }
43      
44     close(soc_cli);
45     return 0;
46     }

 

posted @ 2016-07-22 17:59  匆霜  阅读(498)  评论(0编辑  收藏  举报