Avatar billede mad_man Nybegynder
29. december 2003 - 17:56 Der er 32 kommentarer og
1 løsning

connect socket

jeg har følgende kode:

int port = 12345;
    char host[32] = "madman";
    WORD sockversion;
    WSADATA wsadata;
    sockversion = MAKEWORD(1,1);
    WSAStartup(sockversion, &wsadata);
    LPHOSTENT hosten;
    hosten = gethostbyname(host);

    SOCKET thesocket;
    thesocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(thesocket == INVALID_SOCKET)
    {
        WSACleanup();
        return;
    }
    SOCKADDR_IN server;
    server.sin_family = AF_INET;
    server.sin_addr = *((LPIN_ADDR)*hosten->h_addr_list);
    server.sin_port = htons(port);
    int test;
    test = connect(thesocket,(LPSOCKADDR)&server,sizeof(struct sockaddr));
    if(test == INVALID_SOCKET)
    {
        WSACleanup();
        return;
    }

}

så kommer den med call of nonfunction fejl når jeg compiler.... bruger borland c++builder3
Avatar billede bertelbrander Novice
29. december 2003 - 18:07 #1
Fortæller kompileren hvilken linie?

BCC 5.5 har ingen problemer.
Avatar billede bertelbrander Novice
29. december 2003 - 18:07 #2
grrr, det skulle ikke være et svar, vær venlig at afvise det!
Avatar billede mad_man Nybegynder
29. december 2003 - 18:08 #3
test = connect(thesocket,(LPSOCKADDR)&server,sizeof(struct sockaddr)); den linje
Avatar billede arne_v Ekspert
29. december 2003 - 18:11 #4
Mit gæt er at der mangler en include af en .h fil !
Avatar billede bertelbrander Novice
29. december 2003 - 18:19 #5
Eller at der er en variabel der hedder connect et sted?

Hvilke .h filer har du inkluderet?
Avatar billede mad_man Nybegynder
29. december 2003 - 18:37 #6
#include <vcl.h>
#include <winsock.h>
her jeg inkluderet
Avatar billede arne_v Ekspert
29. december 2003 - 18:40 #7
Hm.

Gad vide om der er noget i vcl.h som konflikter med resten.

Kan du prøve at fjerne den ?
Avatar billede mad_man Nybegynder
29. december 2003 - 18:42 #8
jeg har lavet en "vindusprogramering" så den var der som default
Avatar billede mad_man Nybegynder
29. december 2003 - 18:48 #9
det virker heller ik
så kommer den med nogle fejl i winsock.h
Avatar billede arne_v Ekspert
29. december 2003 - 18:50 #10
Prøv og erstat begge med:

#include <windows.h>
Avatar billede mad_man Nybegynder
29. december 2003 - 18:51 #11
det samme... kommer den bare med...

skal jeg virkelig til og finde en nyere c++builder
Avatar billede arne_v Ekspert
29. december 2003 - 18:54 #12
Kunne godt lyde sådan...
Avatar billede mad_man Nybegynder
29. december 2003 - 21:34 #13
hmm jeg har lige hentet bcb6 og den siger det samme
smider lige hele koden


#include <windows.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

void __fastcall TForm1::connectClick(TObject *Sender)
{
    int port = 12345;
    char host[32] = "madman";
    WORD sockversion;
    WSADATA wsadata;
    sockversion = MAKEWORD(1,1);
    WSAStartup(sockversion, &wsadata);
    LPHOSTENT hosten;
    hosten = gethostbyname(host);

    SOCKET thesocket;
    thesocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(thesocket == INVALID_SOCKET)
    {
        WSACleanup();
        return;
    }
    SOCKADDR_IN server;
    server.sin_family = AF_INET;
    server.sin_addr = *((LPIN_ADDR)*hosten->h_addr_list);
    server.sin_port = htons(port);
    int test;
    test = connect(thesocket,(LPSOCKADDR)&server,sizeof(struct sockaddr));
    if(test == INVALID_SOCKET)
    {
        WSACleanup();
        return;
    }

}
Avatar billede mad_man Nybegynder
29. december 2003 - 21:35 #14
det har ikke noget at gøre med at jeg har en evalulation versions.
Avatar billede arne_v Ekspert
29. december 2003 - 21:40 #15
Mystisk, når jeg fjerner alt GUI halløjsa så compiler det hos mig !

#include <windows.h>
#pragma hdrstop

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

void __fastcall connectClick()
{
Avatar billede mad_man Nybegynder
29. december 2003 - 21:54 #16
ja jeg har også haft det til og køre i console ??? jeg forstår det heller ikke helt...
hvordan kan jeg ellers lave den connect ????
det må være en alternertiv måde
Avatar billede mad_man Nybegynder
29. december 2003 - 21:58 #17
skal jeg ikke lave SOCKET thesocket til en global variabel hvis jeg vil have den kaldet fra andre knapper ????
Avatar billede bertelbrander Novice
29. december 2003 - 22:04 #18
Prøv at skrive ::connect(thesocket,(LPSOCKADDR)&server,sizeof(struct sockaddr));
Avatar billede mad_man Nybegynder
29. december 2003 - 22:15 #19
uhh det hjalp tak for det.... hvorfor ???
Avatar billede mad_man Nybegynder
29. december 2003 - 22:21 #20
hmm så kommer den bare med [Linker Fatal Error] Fatal: Unable to open file 'VCLE35.LIB'
Avatar billede mad_man Nybegynder
29. december 2003 - 22:23 #21
jeg har sletter ikke filen på min computer... så det foklare nok hvorfor den ikke kan åbne den... hvad gør man så ???
Avatar billede arne_v Ekspert
29. december 2003 - 22:32 #22
::connect betyder connect uden klasse/namespace
Avatar billede arne_v Ekspert
29. december 2003 - 22:36 #23
Det kan være et C++Builder opdaterings problem.

Prøv og check project settings - måske skal der linked mod en anden
VCL*.LIB !
Avatar billede mad_man Nybegynder
29. december 2003 - 22:36 #24
jeg prøver lige og lave den igen med en ny form og så vidre... og så bare kopere knap koden
Avatar billede mad_man Nybegynder
29. december 2003 - 23:05 #25
ARGH

[Linker Error] Unresolved external 'WinMain' referenced from D:\PROGRAMMER\BORLAND\CBUILDER6\LIB\C0W32.OBJ

jeg kan compile den 1 når jeg har skrevet al koden ind.. så virker det også fint... så vil jeg lave vidre men så kommer den med den fejl.. så tænkte jeg det er sikkert noget jeg har fucket op... så jeg tog og lavede det forfra og compilede det... det kørte fint.. stoppede det og compilede det igen uden og gøre noget... og så kom fejlen igen...

er det så meget evalutaions udgave at jeg ikke en gang kan få lov til og kompile mer end 1 gang ????
Avatar billede mad_man Nybegynder
29. december 2003 - 23:07 #26
WTF så lukkede jeg programmet og startede det igen så var min kode blevet lavet om til

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try
        {
                Application->Initialize();
                Application->CreateForm(__classid(TForm1), &Form1);
                Application->Run();
        }
        catch (Exception &exception)
        {
                Application->ShowException(&exception);
        }
        catch (...)
        {
                try
                {
                        throw Exception("");
                }
                catch (Exception &exception)
                {
                        Application->ShowException(&exception);
                }
        }
        return 0;
}
//---------------------------------------------------------------------------
Avatar billede mad_man Nybegynder
29. december 2003 - 23:07 #27
nogle der kan foklare mig hvad der sker her ???
Avatar billede arne_v Ekspert
29. december 2003 - 23:29 #28
Huskede du at stille risengrød op på loftet den 24. ?

:-)

Mere seriøst: du har et C++Builder problem og jeg kender ikke den (jeg bruger
kun 5.5 command line compileren).

Men forhåbentligt er der andre som kan forklare det.
Avatar billede mad_man Nybegynder
29. december 2003 - 23:31 #29
hmm jeg huskede det desværre ikke :( så det er sikkert det der er galt =)
Avatar billede segmose Nybegynder
30. december 2003 - 08:36 #30
Kopier al din code over i nogle andre filer, start et nyt project, kopier din kode ind de rigtige steder.
Avatar billede mad_man Nybegynder
30. december 2003 - 11:50 #31
jeg har prøvet det ind til flere gange og den gør det samme hver gang...
Avatar billede susrn Nybegynder
30. december 2003 - 12:52 #32
ang 23:07:10, WTF, så er din kode ikke lavet om, hvis du vælger View/Project Manager, får du et billede frem hvori du kan vælge mellem de filer dit project indeholder, her kan du finde din cpp fil med kode, hvis du da har gemt ( forudsat selvfølgelig at nissen ikke har slettet den).
Avatar billede mad_man Nybegynder
03. maj 2004 - 18:55 #33
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester