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 }