Annonceindlæg fra Kommando
24. oktober 2004 - 23:34
#3
Eksempel: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <windows.h> #include <errno.h> void doit(char *hostname,int port) { FILE *fp; int sd,status,len,first,tmp; char cmd[512],resp[51200]; struct sockaddr local,remote; struct hostent *hostinfo; /* create socket */ sd=socket(AF_INET,SOCK_STREAM,0); if(sd<0) { printf("Error creating socket: %s\n",strerror(errno)); goto fin; } /* bind socket */ local.sa_family=AF_INET; memset(local.sa_data,0,sizeof(local.sa_data)); status=bind(sd,&local,sizeof(local)); if(status<0) { printf("Error binding socket: %s\n",strerror(errno)); goto fin; } /* lookup host */ hostinfo=gethostbyname(hostname); if(!hostinfo) { printf("Error looking up host: %s\n",hostname); goto fin; } /* connect to host */ remote.sa_family=hostinfo->h_addrtype; memcpy(remote.sa_data+2,hostinfo->h_addr_list[0],hostinfo->h_length); *((short *)remote.sa_data)=port; tmp=remote.sa_data[0]; remote.sa_data[0]=remote.sa_data[1]; remote.sa_data[1]=tmp; status=connect(sd,&remote,sizeof(remote)); if(status!=0) { printf("Error connecting to host: %s port: %d\n",hostname,port); goto fin; } /* send request */ sprintf(cmd,"%s\r\n","Kuk kuk"); status=send(sd,cmd,strlen(cmd),0); if(status<0) { printf("Error sending request\n"); goto fin; } /* read response */ while ((len=recv(sd,resp,sizeof(resp),0))>0) { printf("%s",resp); } fin: closesocket(sd); return; } int main(int argc,char *argv[]) { WSADATA WSAData; WSAStartup(0x0101,&WSAData); doit("xxx.domain.dk",12345); WSACleanup(); return 0; }
24. oktober 2004 - 23:44
#5
mange tak. jeg har prøvet at compile det, men får sådan en sjov fejl her, og jeg har ingen ide om hvad den betyder. [Linker error] undefined reference to `socket@12' og btw. så må du godt lægge et svar