Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SERVER
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <stdio.h>
- #include <netinet/in.h>
- #include <netinet/ip.h>
- #include <string.h>
- #include <stdlib.h>
- #include <unistd.h>
- int main(int argc, char* argvs[]){
- if(argc != 2){
- printf("Este necesar portul!\n" );
- return 1;
- }
- int s,c,l;
- int i = 0;
- char sir[50]="", fin[]="SUCCES",finm[]="succes",car;
- int p[2]; pipe(p);
- struct sockaddr_in server, client;
- int port = atoi(argvs[1]);
- //VERIFICARE---------
- if(port<1024 || port>65535){
- printf("Portul nu convine!\n");
- return 1;
- }
- //VERIFICARE---------
- s = socket(AF_INET, SOCK_STREAM, 0);
- if(s<0){
- printf("Eroare socket server!\n");
- return 1;
- }
- memset(&server, 0, sizeof(server));
- server.sin_port = htons(port);
- server.sin_family = AF_INET;
- server.sin_addr.s_addr = INADDR_ANY;
- if(bind(s,(struct sockaddr *) &server ,sizeof(server))<0){
- printf("Eroare la bind!\n");
- return 1;
- }
- listen(s,5);
- l = sizeof(client);
- memset(&client,0,sizeof(client));
- while(1){
- c=accept(s,(struct sockaddr *) &client, &l);
- printf("S-a conectat un client\n");
- if(fork()==0){
- //char car;
- recv(c,&car,sizeof(car),MSG_WAITALL);
- write(p[1],&car,sizeof(char));
- close(p[0]);close(p[1]);
- close(c);
- return 0;
- }
- read(p[0],&car,sizeof(char));
- sir[strlen(sir)] = car;
- printf("%s\n",sir);
- if(strcmp(sir,fin)==0 || strcmp(sir,finm)==0){
- close(p[0]);close(p[1]);
- break;
- }
- }
- return 0;
- }
- CLIENT ----------------------------------------------------------
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <stdio.h>
- #include <netinet/in.h>
- #include <netinet/ip.h>
- #include <string.h>
- #include <unistd.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <stdlib.h>
- int main(int argc, char* argvs[]){
- if(argc != 3){
- printf("Este necesar ip-ul si portul!\n" );
- return 0;
- }
- int c;
- struct sockaddr_in server;
- char ip[20];
- strcpy(ip,argvs[1]);
- int port = atoi(argvs[2]);
- //VERIFICARI-------------------
- if(port<1024 || port>65535){
- printf("Portul nu convine!\n");
- return 1;
- }
- char verif[]="0123456789.";
- int i=0;
- for(i=0;i<strlen(ip);i++){
- if(strchr(verif,ip[i])==0){
- printf("Ip-ul nu convine!\n");
- return 1; //eroare
- }
- }
- //VERIFICARI------------------
- c = socket(AF_INET, SOCK_STREAM, 0);
- if(c<0){
- printf("Eroare socket client!\n");
- return 1;
- }
- memset(&server, 0 ,sizeof(server));
- server.sin_port = htons(port);
- server.sin_family = AF_INET;
- server.sin_addr.s_addr = inet_addr(ip);
- if (connect(c, (struct sockaddr *) &server, sizeof(server)) < 0) {
- printf("Eroare conectarea la server!\n");
- return 1;
- }
- char car;
- printf("Introduceti caracterul: " );
- scanf("%c",&car);
- if(car<65){
- printf("Nu e litera!\n");
- return 0;
- }
- else{
- if(car>90){
- if(car<97 || car>122){
- printf("Nu e litera!\n");
- return 0;
- }
- }
- }
- send(c,&car,sizeof(car),0);
- close(c);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement