본문 바로가기

공부/LinuxServer

4. 클라이언트에서 서버에 연결 요청하기 - connect()

1. header

#include <sys/socket.h>

 

2. function

int connect(int socket, const struct sockaddr *server_address, socklen_t addrlen);

1) int socket : 서버와 연결할 소켓

2) struct sockaddr *server_address : 서버의 주소를 가지고 있는 sockaddr 구조체의 포인터

3) socklen_t addrlen server_address 포인터가 가르키는 구조체의 크기

4) return :

성공

실패

0

-1

 

3. 사용

#include <stdio.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netinet/in.h>
#include <errno.h>

int main()
{
	const int port = 80;

	int sock = socket(AF_INET, SOCK_STREAM, 0);

	sockaddr_in addr;

	addr.sin_family = AF_INET;
	addr.sin_port = htons(port);
	addr.sin_addr.s_addr = inet_addr("255.255.255.255");

	if (connect(sock, (struct sockaddr*)&addr, sizeof(addr)) == -1) {
		fprintf(stderr, "Connect Error : %s\n", strerror(errno));
		return(-1);
	}
	else printf("connected\n");

}