Avatar billede sf Nybegynder
22. oktober 2004 - 21:34 Der er 21 kommentarer og
1 løsning

socket program noob spm

jeg er lige ved at lave lidt winsock programmering men kan ikke helt finde ud af hvad der er galt:


#include "stdafx.h"
#include <winsock.h>
#include <iostream.h>
#include <string.h>

int main(int argc, char* argv[])
{
    call_socket("192.168.1.2","3940");
    return 0;
}

SOCKET call_socket(const char *hostname, unsigned short portnum)
    {
    struct sockaddr_in sa;
    struct hostent *hp;
    SOCKET s; hp = gethostbyname(hostname);
    if (hp == NULL) /* we don't know who this host is */
        return INVALID_SOCKET;
    memset(&sa,0,sizeof(sa));
    memcpy((char *)&sa.sin_addr, hp->h_addr, hp->h_length); /* set address */
    sa.sin_family = hp->h_addrtype;
    sa.sin_port = htons((u_short)portnum);
    s = socket(hp->h_addrtype, SOCK_STREAM, 0);
    if (s == INVALID_SOCKET)
    return INVALID_SOCKET; /* try to connect to the specified socket */
    if (connect(s, (struct sockaddr *)&sa, sizeof sa) == SOCKET_ERROR) {
        closesocket(s);
        return INVALID_SOCKET; }
    return s;

error:

error C2065: 'call_socket' : undeclared identifier
error C2373: 'call_socket' : redefinition; different type modifiers
Avatar billede arne_v Ekspert
22. oktober 2004 - 21:37 #1
Prøv og flyt call_socket op over main
Avatar billede arne_v Ekspert
22. oktober 2004 - 21:37 #2
Eller bare at lig følgende nye linie ind over main:

SOCKET call_socket(const char *hostname, unsigned short portnum);
Avatar billede sf Nybegynder
22. oktober 2004 - 21:44 #3
ja hjalp en hel del men får en ny fejl:
'call_socket' : cannot convert parameter 2 from 'char [5]' to 'unsigned short'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
Avatar billede sovsekoder Nybegynder
22. oktober 2004 - 21:45 #4
du skal bare skrive tallet 3940
Avatar billede arne_v Ekspert
22. oktober 2004 - 21:45 #5
Lav

call_socket("192.168.1.2","3940");

om til

call_socket("192.168.1.2",3940);
Avatar billede sf Nybegynder
22. oktober 2004 - 21:49 #6
ok..
får en masse fejl: (har jeg ikke linket winsock til eller?)
socket.obj : error LNK2001: unresolved external symbol _closesocket@4
socket.obj : error LNK2001: unresolved external symbol _connect@12
socket.obj : error LNK2001: unresolved external symbol _socket@12
socket.obj : error LNK2001: unresolved external symbol _htons@4
socket.obj : error LNK2001: unresolved external symbol _gethostbyname@4
Avatar billede sovsekoder Nybegynder
22. oktober 2004 - 21:50 #7
du mangler nok at linke et library ind i projektet
Avatar billede sf Nybegynder
22. oktober 2004 - 21:52 #8
howto?
Avatar billede sovsekoder Nybegynder
22. oktober 2004 - 21:53 #9
wsock32.lib måske... skal added i project settings under additional libraries
Avatar billede sf Nybegynder
22. oktober 2004 - 21:55 #10
tak det var det.. :)
Avatar billede sovsekoder Nybegynder
22. oktober 2004 - 21:55 #11
det er wsock32.lib (i VS6 får du project settings med ALT+f7) i VS7 kan man højre klikke på projektet og vælge egenskaber..
Avatar billede sovsekoder Nybegynder
22. oktober 2004 - 21:57 #12
np :D
Avatar billede sf Nybegynder
22. oktober 2004 - 21:59 #13
bruger også en funktion establish ved hvorfor jeg får fejl når jeg bruger den?
Avatar billede sf Nybegynder
22. oktober 2004 - 22:00 #14
sorry mig der ikke hvad kigget det igennem lige meget..
Avatar billede arne_v Ekspert
22. oktober 2004 - 22:01 #15
wsock32.lib eller måske ws2_32.lib
Avatar billede arne_v Ekspert
22. oktober 2004 - 22:01 #16
22:01:14 er svar helt tilbag etiul 21:49:14
Avatar billede arne_v Ekspert
22. oktober 2004 - 22:02 #17
tilbage til
Avatar billede sf Nybegynder
22. oktober 2004 - 22:18 #18
ok lave et svar
Avatar billede sovsekoder Nybegynder
22. oktober 2004 - 22:20 #19
det var arne der var først på pletten (begriber ikke hvordan du bærer dig ad, arne :D)
Avatar billede arne_v Ekspert
22. oktober 2004 - 22:20 #20
mig ?
Avatar billede sf Nybegynder
22. oktober 2004 - 22:25 #21
ja arne_v
Avatar billede sf Nybegynder
22. oktober 2004 - 22:26 #22
takker for hjælpen
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





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis