/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

funcion setsockopt()

 
      Índice del Foro elrincondelc.com -> Programación en Servidores
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
dreams_eater



Registrado: 03 Oct 2007
Mensajes: 19

MensajePublicado: 16/10/2007 9:29 am
Título: funcion setsockopt()

Question
Para reutilizar puertos dicen que se deve utilizar esta función.
Busque en el foro, como chico bueno, sobre esta función.
Solo encontre un topic interesante (uso winwosxp).
http://www.elrincondelc.com/nuevorincon/foros/viewtopic.php?t=8977&highlight=setsockopt
Me gustaria obtener información sobre sus argumentos (que otras cositas hace).
La guia de beej no lo explica, tampoco la de zodiac.

Tampoco explican estas funciones:

ioctlsocket(...)
WSAAsynSelect(....)
WSAEventSelect(....)
fcntl(...)

Arrow Si encuentro la respuesta despues, me contesto solo.
Gracias
PD: uso dev C++
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3743
Ubicación: Mexico

MensajePublicado: 16/10/2007 1:53 pm
Título:

MSDN: setsockopt.

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
dreams_eater



Registrado: 03 Oct 2007
Mensajes: 19

MensajePublicado: 16/10/2007 6:04 pm
Título:

Ante todo, gracias.
No por vago, no odio el ingles, odio la forma de publicar la documentación que tiene MSDN.

Seguire buscando en español o de otra funte en ingles.
Volver arriba
Diabliyo



Registrado: 14 Abr 2004
Mensajes: 317
Ubicación: En la Luna

MensajePublicado: 28/10/2007 9:29 am
Título:

Aqui los MAN en espanol Very Happy !!

setsockopt() ::

Y si quieres algun otro AQUI LISTA

bye bye
_________________

Volver arriba
dreams_eater



Registrado: 03 Oct 2007
Mensajes: 19

MensajePublicado: 15/11/2007 8:01 am
Título: no me anda el cliente

Código:
/*create simple client TCP_IP*/
#include <winsock.h>
#include <iostream>
#define MY_PORT 2456
#define BIND_ERROR SOCKET_ERROR
#define CONNECT_ERROR SOCKET_ERROR
#include<conio2.h>
#include<string.h>
using namespace std;


int main(int argc, char *argv[])
{
    WSAData WSApepenet;//declared struct (conseptual dll of windows dedicated to internet "Windows Sockets Addres")
    //WSAData es una estructura con datitos que nunca manejas
    int mysocket;//declared descriptor socket
    sockaddr_in mydata_in;//declared necesary data for ADDResing _INternet
    //donde veas addr, es casi seguro que es la IP o tiene un elemeto addr que es la ip
    //addr=IP
   
    int sizedata=sizeof(struct sockaddr);//size of data addresing
    char bufsend[14];//mensege to server
    char bufrecv[14];//menssaje for server
    strcpy(bufsend,"hello server");
    if (WSAStartup(MAKEWORD(1, 1), &WSApepenet))
    {
        cerr << "WSAStartup failure";
        getch();
        return 1;
     }//initialize sockets dll, WSAStartup return nonzero on failure
    if(!(mysocket=socket(PF_INET,SOCK_STREAM,0)))
    {
       cerr<<"Invalid Soket";
       WSACleanup();//desconect WSA
       getch();
       return 1;
    }//initialize descriptor socket (TCP_IP)
    //PF_INET=Protocol Family _INternET
     mydata_in.sin_family=AF_INET;//Addresing Family _INternET
     mydata_in.sin_port=htons(MY_PORT);//tranfer short int and insert my port
     mydata_in.sin_addr.s_addr=htonl(INADDR_ANY);//tranfer and insert dynamic IP, la del server
     //que solo en este caso es la propia, ya que server y cliente estaran en la misma pc
     memset(&(mydata_in.sin_zero),'\0',8);//fill with zero, free espace
     //allready fill mydata_in
     // para evetar "Address already in use" error message
     char reus;
     reus='1';
     char* reuse;
     reuse=&reus;
     if (setsockopt(mysocket,SOL_SOCKET,SO_REUSEADDR,reuse,sizeof(char))==-1)
     {
       cerr<<"setsockopt failure";
       if(SOCKET_ERROR==(closesocket(mysocket)))cerr<<"\nClose soket failure";//desconect socket
       WSACleanup();
       return 1;
     }
     if(BIND_ERROR==(bind(mysocket,(struct sockaddr*)& mydata_in,sizedata)))
     {
       cerr<<"set to listen failure";
       if(SOCKET_ERROR==(closesocket(mysocket)))cerr<<"\nClose soket failure";//desconect socket
       WSACleanup();//desconect WSA
       getch();
       return 1;
     }//set to listen in the port on client
     //pone la oreja en la puerta, pero no escucha nada de nada
     //nos conectaremos con nosotros mismos, por eso uso mydata_in en connect
     //los clientes tenemos una sola oreja y usamos solo esa, a menos que querramos conecciones complejas
     if(CONNECT_ERROR==(connect(mysocket,(struct sockaddr*)& mydata_in,sizedata)))
     {
       cerr<<"set to listen failure";
       if(SOCKET_ERROR==(closesocket(mysocket)))cerr<<"\nClose soket failure";//desconect socket
       WSACleanup();//desconect WSA
       getch();
       return 1;
     }//nos conectamos!!!
     cout<<"\nSending data...";
     send(mysocket,bufsend,sizeof(bufsend),0);//send data of the bufsend
     cout<<"\nRecived data...";
     recv(mysocket,bufrecv,sizeof(bufrecv),0);//recive data in bufrecv
     //recv return size of the mensaje
     cout<<"\n"<<bufrecv;
     cout<<"\end of simple client...";
     //como no vamos a comunicarnos más con server...
     if(SOCKET_ERROR==(closesocket(mysocket)))cerr<<"\nClose soket failure";//desconect socket
     WSACleanup();//desconect WSA
     getch();
    return 0;
}

no me anda el cliente entra en el if del bind
uso devC++ y windows XP
Volver arriba
dreams_eater



Registrado: 03 Oct 2007
Mensajes: 19

MensajePublicado: 15/11/2007 8:28 am
Título:

acaso no puedo elegir el mismo puerto para comunicarme con migo mismo?
Volver arriba
      Índice del Foro elrincondelc.com -> Programación en Servidores
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com