00001
00002 #include<sys/socket.h>
00003 #include<netinet/in.h>
00004 #include<arpa/inet.h>
00005 #include<errno.h>
00006 #include<unistd.h>
00007 #include<stdlib.h>
00008 #include <sys/types.h>
00009 #include<stdio.h>
00010 #include<fcntl.h>
00011 #include<sys/stat.h>
00012 #include<string.h>
00013 #define SERV_TCP_PORT 9999
00014 #define BUFSIZE 1024
00015
00016 char buff[1000];
00017
00018 int main()
00019 {
00020 int socket_id,socket_connection,client;
00021
00022 struct sockaddr_in serv_addr,cli_addr;
00023
00024 if( (socket_id = socket(AF_INET, SOCK_STREAM, 0) ) < 0)
00025 {
00026 perror("Server: socket() error\n");
00027 exit(1);
00028 }
00029 printf("\n");
00030
00031 bzero( (char *) &serv_addr, sizeof(serv_addr));
00032 serv_addr.sin_family = AF_INET;
00033 serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
00034 serv_addr.sin_port = htons(SERV_TCP_PORT);
00035
00036 if(bind(socket_id,(struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
00037 perror("Server: error bind() \n");
00038
00039 printf("waiting for connection from client\n");
00040
00041 listen(socket_id,5);
00042
00043 client = sizeof(cli_addr);
00044 socket_connection=accept(socket_id,(struct sockaddr *)NULL, NULL);
00045
00046 if(socket_connection > 0)
00047 {
00048 printf("server ip %s connect..\n",inet_ntoa(cli_addr.sin_addr));
00049 }
00050
00051
00052 recv(socket_connection,buff, BUFSIZE,0);
00053
00054 printf("%s\n", buff);
00055
00056
00057
00058 send(socket_connection, buff,BUFSIZE,0);
00059
00060
00061 exit(0);
00062
00063 close(socket_connection);
00064 return 0;
00065 }
00066
00067