[질문]접속에러..SYN_SENT
#define PORT (u_short)8080
#define BUF_LEN 100
char hostname[]="www.abc.com";
main()
{
struct hostent *myhost;
struct sockaddr_in server_addr;
int myfd,size;
char buffer[255];
pid_t pid;
myhost = gethostbyname(hostname);
bzero((char *)&server_addr,sizeof(server_addr));
server_addr.sin_family=AF_INET;
server_addr.sin_port=PORT;
bcopy(myhost->h_addr,(char *)&server_addr.sin_addr,myhost->h_length);
printf("step1\n");
if((myfd=socket(AF_INET, SOCK_STREAM,0))<0)
{
printf("Client Can not open stream socket\n");
return -1;
}
printf("socket myfd %d",myfd);
printf("step2\n");
if(connect(myfd,(struct sockaddr *)&server_addr,sizeof(server_addr))<0)
{
printf("Clientcan not connect to server.\n");
return -1;
};
printf("Connect to server ... \n");
}
이렇게 해서 다른 곳에 도메인을 가지고 접속을 할려고 합니다.
그런데 netstat를 사용해서 상태를 보면 SYN_SENT 이렇게 나옵니다.
요청하는 곳에 접속이 안된것 같은데..
if(connect(myfd,(struct sockaddr *)&server_addr,sizeof(server_addr))<0)
{
printf("Clientcan not connect to server.\n");
return -1;
};
이곳에서 에러가 발생하는 것 같은데 어느 부분이 에러인지..^^;;
Re: [질문]접속에러..SYN_SENT
잘못된 부분은
server_addr.sin_family=AF_INET;
server_addr.sin_port=PORT;
입니다..
port값을 server_addr.sin_port에 대입을 하실때는
htons(PORT)로 지정을 하셔야 합니다.
포트 지정이 엉뚱해서 connect가 실패 하는 것이지요..
댓글 달기