taron_31 | Salut, je viens juste de coder un client/server unix avec un logguer integré au serveur :
Server :
Code :
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h>
- #define MAX_RECEPT 200
- int main(int argc, char* argv[])
- {
- if(argc < 2)
- {
- printf("Parameters error !\n" );
- return EXIT_FAILURE;
- }
- int socket_server, socket_client, server_len, client_len;
- struct sockaddr_in sockaddr_server, sockaddr_client;
- char buffer[MAX_RECEPT];
- time_t date;
-
- FILE* f = fopen(argv[1], "a" );
-
- if((socket_server = socket(AF_INET, SOCK_STREAM, 0)) < 0)
- {
- printf("Socket creation error !\n" );
- return EXIT_FAILURE;
- }
- sockaddr_server.sin_family = AF_INET;
- sockaddr_server.sin_port = 6667;
- sockaddr_server.sin_addr.s_addr = inet_addr("127.0.0.1" );
-
- server_len = sizeof(sockaddr_server);
- client_len = sizeof(sockaddr_client);
-
- if(bind(socket_server, (struct sockaddr*)&sockaddr_server, server_len) < 0)
- {
- printf("Socket bind error !\n" );
- return EXIT_FAILURE;
- }
-
- if(listen(socket_server, 10) < 0)
- {
- printf("Socket listen error !\n" );
- return EXIT_FAILURE;
- }
- printf("[~]Waiting connection... \n" );
- socket_client = accept(socket_server, (struct sockaddr*)&sockaddr_client, &client_len);
- printf("[~]Established connection !\n" );
-
- time(&date);
- fprintf(f, "[!]Established connection at %s", ctime(&date));
-
- if(read(socket_client, &buffer, MAX_RECEPT) < 0)
- {
- printf("Socket read error !\n" );
- return EXIT_FAILURE;
- }
-
- fprintf(f, "From client : %s\n", &buffer);
- printf("From client : %s\n", buffer);
-
- close(socket_client);
- printf("Logging in %s\n", argv[1]);
-
- return 0;
- }
|
Client :
Code :
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <stdlib.h>
- #include <stdio.h>
- int main()
- {
- int socket_connect, sockaddr_len, result;
- struct sockaddr_in sockaddr_connect;
- char buffer[200];
- socket_connect = socket(AF_INET, SOCK_STREAM, 0);
-
- if(socket_connect < 0)
- {
- printf("Socket creation error !\n" );
- return EXIT_FAILURE;
- }
- sockaddr_connect.sin_family = AF_INET;
- sockaddr_connect.sin_addr.s_addr = inet_addr("127.0.0.1" );
- sockaddr_connect.sin_port = 6667;
- sockaddr_len = sizeof(sockaddr_connect);
- if(connect(socket_connect, (struct sockaddr *)&sockaddr_connect, sockaddr_len) < 0)
- {
- printf("Socket connection error !\n" );
- return EXIT_FAILURE;
- }
-
- printf("send>" );
- fgets(buffer, sizeof(buffer), stdin);
- write(socket_connect, buffer, sizeof(buffer));
- close(socket_connect);
-
- return 0;
- }
|
Citation :
$./server log.txt
[~]Waiting connection... [~]Established connection !
From client : Hello !
Logging in log.txt
|
Citation :
$./client
Send>Hello!
|
Désolé je n'ai pas commente la source ;(, en esperant tout de même t'avoir aidé... Message édité par taron_31 le 25-04-2005 à 22:19:33
|