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
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Pegar a ultima ocorrencia viva (1)
Pq me aparece isso quando fui atualizar o Ubuntu 24.10 no terminal? (1)
como coloco para instalar com esse erro. (13)
Alguém sabe de documentos de texto e /ou vídeo aulas de certificações ... (1)