
Enviado em 01/10/2017 - 11:55h
Estou apredendo a programar sockets porém estou tendo problemas na hora de realizar a troca de menssagens entre o cliente e o servidor, os dois códigos funcionam como "deveriam" só que o problema está na hora de enviar uma menssagem e receber.
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <iostream>
#include <errno.h>
struct sockaddr_in server;
#define buffer 200
int main(){
std::string menssagm;
int clientfd=(socket(AF_INET, SOCK_STREAM, IPPROTO_TCP));
if(clientfd==-1){
perror("socket");
std::cout << "Falha\n";
}else{
std::cout << "Ok...\n";
}
server.sin_family=AF_INET;
server.sin_port=htons(2000);
//server.sin_addr.s_addr=inet_addr("127.0.0.1");
int serverfd=(connect(clientfd, (struct sockaddr*)&server, sizeof(server)));
if(serverfd==-1){
std::cout << "Erro...\n";
perror("connect");
}else{
std::cout << "Conexão estabelecida com sucesso\n";
if((recv(serverfd,(void*)menssagm.c_str(), buffer, 0)==-1)){
std::cout << "Erro ao receber menssagem\n";
perror("recv");
}else{
std::cout << "Menssagem recebida\n";
std::cout << menssagm << "\n";
}
if((send(serverfd, "script kiddie", buffer, 0)==-1)){
std::cout << "Erro ao enviar menssagem\n";
perror("send");
}else{
std::cout << "Menssagem enviada";
}
}
}
#include <iostream>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>
struct sockaddr_in local;
struct sockaddr_in remoto;
std::string hello="Hello";
std::string word;
int main(){
int localFd=((socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)));
local.sin_family=AF_INET;
local.sin_port=htons(2000);
local.sin_addr.s_addr = inet_addr("127.0.0.1");
bind(localFd,(struct sockaddr*)&local, sizeof(local));
listen(localFd,1);
int remotoFd;
socklen_t len=sizeof(remoto);
if((remotoFd=accept(localFd, (struct sockaddr*)&remoto, &len))==-1){
std::cout << "Erro...\n";
}else{
std::cout << "Conexão recebida com sucesso\n";
send(remotoFd, hello.c_str(), 50, 0);
recv(remotoFd, (void*)word.c_str(), 50, 0);
std::cout << word << "\n";
}
}
recv(): Socket operation on non-socket
send(): Socket operation on non-socket
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Apagar Todo o Histórico do Terminal
Linux Mint: Zram + Swapfile em Btrfs
Internet não funciona corretamente no Linux (3)
Pendrive do Ubuntu 24.04 travando ao tentar fazer a instalação dual bo... (4)
Instalar Dual Boot, Linux+Windows. (14)
queria saber de uma coisa sobre o steam e derivados (3)
tentei instalar o steam pelo terminal, agora ele não abre (3)









