Fala pessoal eu já dei inicio ao meu trabalho da faculdade que consiste em fazer uma fila de despertadores, vou explicar. O Cliente chega e digita e conecta a maquina servidora, daí ele digita SET 5 ( isso corresponde a ser acordado daqui a 5 segundos.
Gostaria que se vocês pudessem dessem uma olhada no meu codigo Cliente / Servidor abaixo;
servidor:
#include <sys/types.h>
> #include<sys/socket.h>
> #include<unistd.h>
> #include<netinet/in.h>
> #include<stdio.h>
>
> #define MAXFILA 10
> struct timer{
>
> int tempo[MAXFILA];
> int inic;
> };
>
> int main(int argc, char **argv)
> {
>
> struct timer *t;
> int listenfd, connfd, size;
> struct sockaddr_in myaddr, cliaddr;
> int bufsize=128;
> char *cmd;
>
>
> listenfd=socket(AF_INET, SOCK_STREAM, 0); // cria o socket
> memset(&myaddr,0, sizeof(myaddr)); //zera a estrutura
> myaddr.sin_family=AF_INET; //define a familília
> myaddr.sin_port=htons(12345); //define a porta
> myaddr.sin_addr.s_addr=INADDR_ANY;//associa a estrutura
qualquer endereço de máquina
> if(bind(listenfd, (struct sockaddr *)&myaddr,
sizeof(myaddr))==0)
> printf("Escutando...\n");
> listen(listenfd,5);//deixa o socket na escuta de pedidos de
Pergunta
neotheone
Fala pessoal eu já dei inicio ao meu trabalho da faculdade que consiste em fazer uma fila de despertadores, vou explicar. O Cliente chega e digita e conecta a maquina servidora, daí ele digita SET 5 ( isso corresponde a ser acordado daqui a 5 segundos.
Gostaria que se vocês pudessem dessem uma olhada no meu codigo Cliente / Servidor abaixo;
servidor:
#include <sys/types.h>
> #include<sys/socket.h>
> #include<unistd.h>
> #include<netinet/in.h>
> #include<stdio.h>
>
> #define MAXFILA 10
> struct timer{
>
> int tempo[MAXFILA];
> int inic;
> };
>
> int main(int argc, char **argv)
> {
>
> struct timer *t;
> int listenfd, connfd, size;
> struct sockaddr_in myaddr, cliaddr;
> int bufsize=128;
> char *cmd;
>
>
> listenfd=socket(AF_INET, SOCK_STREAM, 0); // cria o socket
> memset(&myaddr,0, sizeof(myaddr)); //zera a estrutura
> myaddr.sin_family=AF_INET; //define a familília
> myaddr.sin_port=htons(12345); //define a porta
> myaddr.sin_addr.s_addr=INADDR_ANY;//associa a estrutura
qualquer endereço de máquina
> if(bind(listenfd, (struct sockaddr *)&myaddr,
sizeof(myaddr))==0)
> printf("Escutando...\n");
> listen(listenfd,5);//deixa o socket na escuta de pedidos de
coneão
>
> for(;;)
> {
> memset(&cliaddr, 0, sizeof(cliaddr));
> size=sizeof(cliaddr);
> connfd=accept(listenfd, (struct sockaddr *) &cliaddr, &size);
//aceita pedidos de conexão
> t->tempo[++t->inic]=recv(listenfd,cmd,bufsize,0);
> printf("Novo tempo cadastrado: %s\n");
> send(connfd, "Tempo cadastrado!\n", 18, MSG_WAITALL);
> close(connfd);
>
> }
> return 0;
> }
>
>
>
------------------------------------------------------------------------
> CLiente.c
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <unistd.h>
> #include <netinet/in.h>
> #include <arpa/inet.h>
> #include <string.h>
> #include<stdio.h>
>
>
>
>
> int main(int argc, char **argv)
> {
>
> int sockfd,erro,errosend, bytes;
> erro = 0;
> struct sockaddr_in end_servidor;
> char recvline[10];
> char x[10];
> char *ptr;
> char cmd[20];
> int bufsize=128;
> if(argc!=3)
> {
> printf("Parametros incorretos\n");
> return -1;
> }
>
> printf("Digite a hora que deseja ser despertado");
> gets(x);
> ptr=strtok(x, " ");
> strcpy(cmd,ptr);
> while(strcmp(cmd,"set"))
> {
> printf("Este comando não é válido\n");
> gets(x);
> ptr=strtok(x, " ");
> strcpy(cmd,ptr);
> }
>
> sockfd=socket(AF_INET, SOCK_STREAM, 0);
> memset(&end_servidor,0, sizeof(end_servidor));
> end_servidor.sin_family=AF_INET;
> end_servidor.sin_port=htons(atoi(argv[2]));
> inet_aton(argv[1], &end_servidor.sin_addr);
>
> erro = connect(sockfd,(struct sockaddr
*)&end_servidor,sizeof(end_servidor));
> if( erro != 0 )
> {
> printf("Erro ao tentar se conectar so servidor\n");
> return(-1);
> }
> send(sockfd,cmd, bufsize,0);
>
> bytes = recv(sockfd,recvline,20,MSG_WAITALL);
> printf("%d Bytes recebidos\n",bytes);
> fputs(recvline,stdout);
> close(sockfd);
> return 0;
> }
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.