Data+

#1. 소켓 프로그래밍 기초 in C

by Qerogram

서론

파이썬 소켓프로그래밍과 동일하고, 그냥 C로 작성해봤다.

진행과정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <WinSock2.h>
#include <stdio.h>
 
#pragma comment(lib, "ws2_32.lib")
 
int main() {
    WSADATA wsa;
 
    char buf[512];
    if(WSAStartup(MAKEWORD(2,2), &wsa) != 0) { // 버전 확인.
        printf("not equal version\n");
        return 0;
    }
 
    SOCKET sock = socket(PF_INET, SOCK_STREAM, 0);
    SOCKADDR_IN addr;
 
    if(sock == INVALID_SOCKET) { // 소켓 생성 확인
        printf("Socket Create Fail\n");
        return 0;
    }
 
    addr.sin_family = AF_INET; // IPv4 주소를 쓰겠다.
    addr.sin_port = htons(80); // 80포트를 쓰겠다.
    addr.sin_addr.s_addr = inet_addr("x.x.x.x");
 
    if(connect(sock, (struct sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR){ // 소켓 연결 확인
        printf("Not Connect\n");
        return 0;
    }
 
    
    send(sock, "GET / HTTP/1.1\r\nHost: qerogram.run.goorm.io\r\n\r\n", strlen("GET / HTTP/1.1\r\nHost: qerogram.run.goorm.io\r\n\r\n"), 0);
    recv(sock, buf, sizeof(buf), 0);
 
    printf("%s\n", buf);
    closesocket(sock);
    WSACleanup();
    system("pause");
 
    return 0;
}
 
cs


Reference

http://applegod.tistory.com/entry/C%EC%96%B8%EC%96%B4-%EC%86%8C%EC%BC%93%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-Http-request-response?category=577125

블로그의 정보

Data+

Qerogram

활동하기