Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - shaggy23

#1
Programación C/C++ / sockets en c++
29 Marzo 2015, 20:33 PM
que tal programadores, quisiera que me ayudaran con este codigo ya que no puedo hacer que se conecten los sockets cliente y servidor, y no se porque, se que este tema ya se habia tratado antes. gracias
CLIENTE
Código (cpp) [Seleccionar]
#include <iostream>
#include<winsock2.h>
#include<winsock.h>
#include<stdio.h>
#include<conio.h>
#define port 7200
#define ip 192.168.0.1

using namespace std;


int main(int argc, char *argv[]) {
WSADATA wsa;
char buffer[30];
int conexion;
struct sockaddr_in direccion;
int sock;
char mensaje [30];
WSAStartup(MAKEWORD(2,0),&wsa);
if(sock=socket(AF_INET,SOCK_STREAM,0)<0){
printf("error al crear socket");
}
else{
printf("socket creado...\n");
Sleep(4000);
printf("aceptando...\n");
Sleep(4000);
}
direccion.sin_family=AF_INET;
   direccion.sin_port=htons(7200);
   direccion.sin_addr.s_addr=INADDR_ANY;
   bind(sock,(struct sockaddr*)&direccion,sizeof(struct sockaddr_in));
   conexion=connect(sock, (struct sockaddr *)&direccion, sizeof(struct sockaddr_in));
   if(conexion==1){
printf("conexion establecida con servidor");
   }
   else{
printf("conexion no establecida");
   }
   while(conexion==0){
printf("mensaje:");
scanf("%c",&mensaje);
   }
}

SERVIDOR
#include <iostream>
#include<winsock2.h>
#include<winsock.h>
#include<stdio.h>
#include<conio.h>
#define port 7200


using namespace std;


int main(int argc, char *argv[]) {
WSADATA wsa;
char buffer[50]="bienvenido,estas conectado";
struct sockaddr_in direccion;
int sock;
int tam=sizeof(struct sockaddr_in);
   int n_sock;
int mensaje;

WSAStartup(MAKEWORD(2,0),&wsa);
if(sock=socket(AF_INET,SOCK_STREAM,0)<0){
printf("error al crear socket");
}
else{
printf("socket creado...\n");
Sleep(2000);
printf("escuchando...\n");
Sleep(2000);
}
direccion.sin_family=AF_INET;
   direccion.sin_port=htons(7200);
   direccion.sin_addr.s_addr=inet_addr("localhost");
   bind(sock,(struct sockaddr*)&direccion,sizeof(struct sockaddr_in));
listen(sock,1);
if(listen<0){
printf("error en la escucha");
}
else{
printf("la escucha es correcta...\n");
Sleep(2000);
}
if(n_sock=accept(sock,NULL,NULL)<0){


   printf("error al aceptar clientes");
}

else{
printf("esperando clientes...\n");
mensaje=sendto(sock, buffer, sizeof(buffer),0,(struct sockaddr*)&direccion,sizeof(struct sockaddr*));
}
puts(buffer);
getch();
closesocket(sock);

return 0;
}


Mod: Los códigos deben ir en etiquetas GeSHi