Enviado em 15/10/2018 - 22:15h
Olá, estou tendo problemas para converter network byte order para host byte order com a função ntohs(). Eu não entendi o porque da conversão está dando problemas, pois a função que estou usando para converter host byte order para network byte order é a htons(), o que tecnicamente deveria dar certo, pois ambas as funções trabalham com unsigned short.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(void){
struct sockaddr_in addr, remoteAddr;
socklen_t socklen=sizeof(struct sockaddr_in);
int sockfd=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sockfd<0){
perror("ERROR (SOCKET)");
exit(1);
}
addr.sin_family=AF_INET;
addr.sin_port=htons(9009);
addr.sin_addr.s_addr=inet_addr("127.0.0.1");
if(bind(sockfd, (const struct sockaddr*)&addr, socklen)<0){
perror("ERROR (BIND)");
exit(1);
}
if(listen(sockfd, 1)<0){
perror("ERROR (LISTEN)");
exit(1);
}
int csockfd=accept(sockfd, (struct sockaddr*)&remoteAddr, &socklen);
if(csockfd<0){
perror("ERROR (BIND)");
}else{
printf("\nConnected successfully with %s:%hu\n\n",
inet_ntoa(remoteAddr.sin_addr), ntohs(remoteAddr.sin_port));
if(send(csockfd, "REAL MOTHERFUCKIN G'S", 22, 1)<0){
perror("ERROR (SEND)");
}
}
close(csockfd);
close(sockfd);
return 0;
}
Zhokhaidooo@Zhokhaidooo:~/Desktop/PrograshitoPpkX$ gcc -Wall server.c -o server
Zhokhaidooo@Zhokhaidooo:~/Desktop/PrograshitoPpkX$ ./server
Connected successfully with 127.0.0.1:42798
Zhokhaidooo@Zhokhaidooo:~/Desktop/PrograshitoPpkX$ nc 127.0.0.1 9009
REAL MOTHERFUCKIN G'S
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta