Thursday, May 29, 2008

Socket, connect()

client에서 서버로 접속할 때는 connect()를 사용한다.

int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addr_len);

보다시피 사용방법은 아주 간단하다. 먼저 socket을 만들고, 만들 소켓을 접속한 주소가 담긴 sockaddr와 함께 인자로 주면 된다. 입력한 주소가 invalid한 경우에 0을 리턴하기 때문에 아래와 같이 코드를 만들게 된다.

#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>

int sock_fd;
int saddr;

sfd = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);

saddr.sin_family = AF_INET;
saddr.sin_port = 80; // port

if (inet_aton("100.100.100.100"), &(saddr.sin_addr) == 0)
fprintf(stderr, "error : inet_aton\n");
if (connect(sfd, (struct sockaddr *)&saddr, sizeof(saddr)) == -1)
perror("connect");

No comments:

Post a Comment