Sockets en Visual C++

trinytron

Saludos a todos! he instalado el visual studio 2005 para poder iniciarme en el mundo de los sockets en c++.

He acudido al MSDN y elli aparece este fragmento de codigo:

//Las librerias creo que son estas
#include <stdio.h>
#include "winsock2.h"

void main()
{

WSDATA wsdatos;

int iresult = WSAStartup ( MAKEWORD(2,2), &wsdatos);

if (iresult != NO_ERROR)
printf ("Error at WSAStartup()\n");

}

El fallo que me da es:

unresolved external symbol _WSAStartup@8 referenced fuction_main

He mirado otros manuales y todos inicializan el Winsock de esta forma y no entiendo porque da error, alguien me lo podria decir???

P.D: He probado con la libreria winsock.h y tampoco funciona

LOc0

Ojo al "spameo" de #2 xD
En cuanto a #1, efectivamente tienes que "linkar" la librería ws2_32.

Salu2 ;)

0x666

Increible ver esto en este forito.

Pues nada, postea tus dudas de sockets :D
C es un buen lenguaje, pero te recomiendo el compilador vc++ 6.0

Un saludo

trinytron

muchas gracias nanuuus!!

creo que seria interesante hacer un proyecto en sockets con un lenguaje tan potente como C :P

P.D: #2 lo has echo tu ? O_O

LOc0

Yo hice un mini-chat en C:

http://personales.ya.com/tonilope/chateitor.zip

Salu2 ;)

D

ojo al spam de #6

DaGGoTH

No soy capaz de compilar lo de #2 siempre me da errores :(

He utilizado Dev C++ y VC++ 6 :/

javithelong

Me he leido un main del programa que pone #2 y ya he encontrado un sitio por donde joderlo xDDD

Aparte, no estoy seguro de que si le haces un kill a un proceso, siga ejecutando líneas de código.

Pones
id=getpid()
kill (id)
exit()

Ese exit... se alcanza?

EDIT: Mirando un par de códigos por encima (los de linux, para ser mas exactos) veo poca protección ante usuarios... malintencionados xD Luego me miro el código del servidor en win a ver si se pueden hacer barbaridades.

trinytron

Pregunta de novato...

Me he creado el servidor con la ayuda del MSDN(todo hay que decirlo...) y para no tener que desarrollar el cliente he decidido usar el netcat entonces he puesto lo siguiente:

nc -vv 127.0.0.1 27015

Una vez que lo ejecuto me dice que en ese puerto hay algo que lesta a la escucha(mi programa) pero no establece una conexion puesto que en el servidor no me dice "Cliente conectado" y si le intento enviar un archivo mediante:

nc -vv 127.0.0.1 27015 < archivo

me dice que se ha perdido la conexion

Os dejo el codigo a ver si me sabeis decir porque:

http://www.wilcob.com/Wilco/Pastecode/3094/showpaste.aspx

He puesto comentarios en el source para que la gente que empieza desde 0 como yo le sea de ayuda :)

0x666

#8 Yo lo he compilado a la primera, solo he probado a compilar el servidor para win2k.
He abierto diracetamente el archivo CRShell.dsw, y sin hacer nada le he dado a build.

--------------------Configuration: CRShell - Win32 Release--------------------
Compiling...
main.cpp
Linking...

CRShell.exe - 0 error(s), 0 warning(s).

Supongo que el resto compilaran igual.

#9 Claro , como matar cualquier exe, pillas el PID y se lo pasas a la api de matar proceso xD.
Ahora bien, que pasa cuando no ves el EXE, buajajaja.

javithelong

#11 getpid te da el pid del proceso que lo ejecuta (es decir, tienes la id de ti mismo) y tu llamas a la función kill de ti mismo, es decir, el SO mata tu proceso, a ti mismo, por eso preguntaba si ese exit se alcanza o no

javithelong

Cuando un programa lanza procesos hijos, estos tienen que acabarse de alguna manera.

Ah, y el código no es mio, yo solo he estado leyendo un ratín.

Saludos

RazaK

joder podriais ordenar un poko lo que es el contenido del programa por que yo aun sabiendo un poko de c me cuesta comprender con tanto desorden, imaginate alguien como #1 q se esta iniciando en el tema XDDDD. weno solo e visto el del chateitor xDDD, por cierto ta curioso el programa algun dia me pondre a ver como ahcer el royo este de las ips basandome en el tuyo xdd

0x666

los codigos son muy sencillos xD
Si codigos asi te van grandes olvidate de programar.

javithelong

Si te refieres al código de #2 es realmente sencillo.

Descomprime el .rar ese y te saldrán unas carpetitas maravillosas con los programas para cada plataforma.
Abrete el .c o .cpp con cualquier editor de texto y te los lees, no tienen dificultad alguna.

Saludos

Usuarios habituales

  • javithelong
  • 0x666
  • RazaK
  • trinytron
  • DaGGoTH
  • DeiX
  • LOc0