Ir para conteúdo
Fórum Script Brasil

Fábio Lanza

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Fábio Lanza postou

  1. Pessoal, preciso entregar um trabalho amanhã na universidade, o trabalho em sí é muito maior do que esta passagem, pensei que não teria problemas, mas não está funcionando... Eu tenho um cliente e um servidor em Java, no meio desta comunicação, eu preciso colocar um "man-in-the-middle" em C... Para isso estou usando o seguinte código: Em C: #include <stdio.h> #include <string.h> #include <errno.h> #include <sys/socket.h> #include <resolv.h> #define PORT 31111 #define MAXBUF 1000 #define PORTC 41111 #define SERVER_ADDR "127.0.0.1" int main(int argc, char **argv){ int s, client_s, len, port; struct sockaddr_in self; struct sockaddr_in client; int addrlen = sizeof(client); char msg_write[MAXBUF]; char msg_read[MAXBUF]; port = PORT; if (argc == 2) { port = atoi(argv[1]); } /*---Open socket for streaming---*/ if ( (s = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) { perror("Socket"); exit(errno); } /*---Initialize server address/port struct---*/ bzero(&self, sizeof(self)); self.sin_family = AF_INET; self.sin_port = htons(port); self.sin_addr.s_addr = INADDR_ANY; /*---Assign a port number to the socket---*/ if ( bind(s, (struct sockaddr*)&self, sizeof(self)) != 0 ) { perror("socket--bind"); exit(errno); } /*---Make it a "listening socket"---*/ if ( listen(s, 1) != 0 ) { perror("socket--listen"); exit(errno); } /*---accept a connection ---*/ printf ("Server C accpeting connections!\n"); client_s = accept(s, (struct sockaddr*)&client, &addrlen); printf ("%s:%d connected\n", inet_ntoa(client.sin_addr), ntohs(client.sin_port)); read (client_s, msg_read, MAXBUF); len = strlen(msg_read) - 1; if (msg_read[len] == '\n'){ msg_read[len] = ''; } printf ("Mensagem do cliente: %d\n", msg_read); //envia mensagem recebida ao servidor em java int sC, n, buflen, server_port; struct sockaddr_in dest; msg_write[MAXBUF]; char server_addr[50]; server_port = PORTC; strcpy (server_addr, SERVER_ADDR); /*---Open socket for streaming---*/ if ( (sC = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) { perror("Socket"); exit(errno); } /*---Initialize server address/port struct---*/ bzero(&dest, sizeof(dest)); dest.sin_family = AF_INET; dest.sin_port = htons(server_port); if ( inet_aton(server_addr, &dest.sin_addr.s_addr) == 0 ) { perror(server_addr); exit(errno); } /*---Connect to server---*/ if ( connect(sC, (struct sockaddr*)&dest, sizeof(dest)) != 0 ) { perror("Connect "); exit(errno); } write (s, msg_read, strlen(msg_read)+1); close(s); close(sC); } Porém não está dando certo... Aparentemente a mensagem não está sendo lida corretamente... Alguém poderia me ajudar por favor? Abraços...
×
×
  • Criar Novo...