|
#include <windows.h>
#include <winsock.h>
#include <stdio.h>
SocketInit(const char hname[], int pnum)
{ SOCKET s=(-1);
struct sockaddr_in sockname;
const char service[5] = "smtp";
struct hostent *hostname; //=gethostbyname(hname);
unsigned long int iaddr;
struct servent *serv_rec;
char temp[50];
if (isdigit((int) hname[0]))
{
iaddr = inet_addr(hname);
if(iaddr == ((u_long) ERROR)){
return (-1);
}else{
sockname.sin_addr.s_addr = iaddr;
}
}else{
hostname = gethostbyname(hname);
if(hostname == NULL){
return (-1);
} else{
sockname.sin_addr = *(struct in_addr *) hostname->h_addr;
}
}
if(hostname==NULL)
return INVALID_SOCKET;
sprintf(temp,"s:%d",s);
Application->MessageBox(temp, "socket value1", MB_OK);
s=socket(AF_INET,SOCK_STREAM,0); // PF_INET
sprintf(temp,"s:%d",s);
Application->MessageBox(temp, "socket value2", MB_OK);
//.........
//이하생략
Socket생성시 s값이 -1로 찍히는데 왜 이렇게 나오는지 아시는분 좀 가르쳐 주세요.
|