[RESOLVIDO] Como eu envio conexões para um endereço IP com socket ....?

2 respostas Resolvido
programação
teuzero

Queria saber como faz pra ficar enviando conexões usando socket na linguagem C no windows pra um determinado IP e porta até ele aceitar…

o código abaixo recebe coxeão:

#include <stdio.h>
#include <winsock2.h>

int main(){

WSADATA wsa;

WSAStartup(MAKEWORD(2, 0), &wsa);
char buff[259];


struct sockaddr_in caddr;
struct sockaddr_in saddr = {
	.sin_family = AF_INET,
	.sin_addr.s_addr = inet_addr("192.168.15.3"),
	.sin_port = htons(5000)
};

int server = socket(AF_INET, SOCK_STREAM, 0);
int client, x;
int csize = sizeof caddr;

bind(server, (struct sockaddr *) &saddr, sizeof saddr);
listen(server, 5);

while(1){
	client = accept(server, (struct sockaddr *) &caddr, &csize);
	x = recv(client, buff, sizeof buff, 0);

	send(client, buff, x, 0);

	puts(buff);
	fflush(stdout);


	closesocket(client);
}




return 0;

}

Queria mudar esse código pra ele enviar conexões automaticamente pra um IP que esta em escuta até ser aceito a conexão… Obrigado.

2 Respostas

JvDK
Solucao aceita

ta ai:
code:

#include <stdio.h>
#include <unistd.h>
#include <winsock2.h>
#include <string.h>
#include <stdlib.h>

#define REMOTE_ADDR “192.168.15.3”
#define REMOTE_PORT 5000

int main(int argc, char *argv[])

{

WSADATA wsa;

WSAStartup(MAKEWORD(2, 0), &wsa);
//mensagem
char *buffer;
buffer = malloc(sizeof(char)*1024);

int s; //Varivel s do socket
int iBytes;

// Epecifica um endereço para o socket
struct sockaddr_in sa = 
{
	.sin_family = AF_INET,
	.sin_addr.s_addr = inet_addr(REMOTE_ADDR),
	.sin_port = htons(REMOTE_PORT)
};

// Cria um socket
s = socket(AF_INET, SOCK_STREAM, 0);

// Faz a conexão com client
while(connect(s, (struct sockaddr *)&sa, sizeof(struct sockaddr)) < 0){
	printf("Conexao deu erro, tentando novamente!\n");
	

}


/* recebe dados do client */
while(1)

{

while((iBytes=recv(s, buffer, 100, 0)) < 0 )

{

perror(recv);

}

printf(Recebido: %s,buffer);

buffer[iBytes] = ‘\0; /* Acrescenta o \0 para garantir término nulo para a string */

}
return 0;

}

teuzero

Nossa!:star_struck:
Muito obrigado!
Ajudou muitíssimo !

Criado 17 de julho de 2019
Ultima resposta 21 de jul. de 2019
Respostas 2
Participantes 2