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
Mod: Los códigos deben ir en etiquetas GeSHi
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