Recibir informacion de linux en visual basic

proabadie
02 de Enero del 2008
Hola a todos. Es mi primer post jeje! Espero puedan ayudarme. Les explico el prolema. Estoy creando un servidor que corre bajo linux, el cual utilizo para conectar varias clientes en visual basic. Desde visual hago una consulta de usuarios al servidor, pero no consigo recibir bien los datos. Este es el codigo que tengo en la función consulta de usuarios:
void serv_usuarios_online (Tmsg msg, int sock){
int d,nd;
Tcon con;

d=open("connectats.dat",O_RDONLY);
if (d==-1)
{
perror("error en apertura del archivo");
exit (1);
}

strcpy(msg.info,"SERVIDOR: Usuarios conectados...");
nd=read(d, &con, sizeof(Tcon));
if (nd==-1)
{
perror("error en la lectura del archivo");
exit (1);
}


while(nd!=0){
strcpy(msg.name,con.name3);
send(sock, &msg.name, sizeof(msg.name),0);
nd=read(d, &con, sizeof(Tcon));



}
Esto funciona bien , o eso creo, os he puesto el codigo por si os ayudaba. El problema esta en la recepción , solo consigo recibir el primer usuario del archivot connectats.dat . Lo que tengo en visual es lo siguiente:

Dim nd As String * 8
'Dim nd1 As Integer
Dim user As String * 8
'nd1 = 1
nd = "1"
user = "1"
While user <> "0"
Inici.Winsock1.GetData user
'MsgBox "" & nd
'Inici.Winsock1.GetData user
'nd1 = CInt(nd)
MsgBox "" & user
'Inici.Winsock1.GetData user
' Inici.Winsock1.GetData nd
'nd1 = CInt(nd)
' MsgBox "" & nd
Wend

Tengo mucho texto comentado por que estaba haciendo pruebas, he probado varias cosas pero no se que más hacer, es la primera vez que programo en visual basic. Espero haber explicado bien el problema!!!! Gracias de antemano!!!

mvallejos
02 de Enero del 2008
El Método GetData lo debes usar en el evento DataArrival (recepción de datos del winsock)

Otra cosa, utiliza string sin longitud, porque si no te rellena las variables con espacios.

Saludos