간단한 소켓 클라이언트 프로그램

31437 
Created at 2007-07-16 22:07:09 
264   0   0   0  
다음은 socket 기본 함수를 이용하여 웹페이지에 접속하는 프로그램이다.
접속만 하고 실제로 긁어오는건 구현이 안되있다.


int main()
{
int connectSD;//소켓 디스크립터
struct sockaddr_in origin_addr;
char *addr = "http://www.kurapa.com";

if((connectSD = socket(PF_INET, SOCK_STREAM, 0)) < 0)
error_handling("connectSD socket() error");

memset(&origin_addr, 0, sizeof(origin_addr));
origin_addr.sin_family = AF_INET;
origin_addr.sin_addr.s_addr = inet_addr(addr);
origin_addr.sin_port = htons(80);

if(connect(connectSD, (struct sockaddr*)&origin_addr, sizeof(origin_addr)) == -1)
error_handling("connect() error");

return 0;

}


그리고 다음은 WIN32기반으로 구현해본 간단 접속 프로그램 예제이다.

#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>

#define DEFAULT_BUFLEN 512
#define DEFAULT_PORT "27015"

int __cdecl main(int argc, char **argv)
{
WSADATA wsaData;
SOCKET ConnectSocket = INVALID_SOCKET;
struct addrinfo *result = NULL,
*ptr = NULL,
hints;
char *sendbuf = "this is a test";
char recvbuf[DEFAULT_BUFLEN];
int iResult;
int recvbuflen = DEFAULT_BUFLEN;

// Validate the parameters
if (argc != 2) {
printf("usage: %s server-name ", argv[0]);
return 1;
}

// Initialize Winsock
iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if (iResult != 0) {
printf("WSAStartup failed: %d ", iResult);
return 1;
}

ZeroMemory( &hints, sizeof(hints) );
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;

// Resolve the server address and port
iResult = getaddrinfo(argv[1], DEFAULT_PORT, &hints, &result);
if ( iResult != 0 ) {
printf("getaddrinfo failed: %d ", iResult);
WSACleanup();
return 1;
}

// Attempt to connect to an address until one succeeds
for(ptr=result; ptr != NULL ;ptr=ptr->ai_next) {

// Create a SOCKET for connecting to server
ConnectSocket = socket(ptr->ai_family, ptr->ai_socktype,
ptr->ai_protocol);
if (ConnectSocket == INVALID_SOCKET) {
printf("Error at socket(): %ld ", WSAGetLastError());
freeaddrinfo(result);
WSACleanup();
return 1;
}

// Connect to server.
iResult = connect( ConnectSocket, ptr->ai_addr, (int)ptr->ai_addrlen);
if (iResult == SOCKET_ERROR) {
closesocket(ConnectSocket);
ConnectSocket = INVALID_SOCKET;
continue;
}
break;
}

freeaddrinfo(result);

if (ConnectSocket == INVALID_SOCKET) {
printf("Unable to connect to server! ");
WSACleanup();
return 1;
}

// Send an initial buffer
iResult = send( ConnectSocket, sendbuf, (int)strlen(sendbuf), 0 );
if (iResult == SOCKET_ERROR) {
printf("send failed: %d ", WSAGetLastError());
closesocket(ConnectSocket);
WSACleanup();
return 1;
}

printf("Bytes Sent: %ld ", iResult);

// shutdown the connection since no more data will be sent
iResult = shutdown(ConnectSocket, SD_SEND);
if (iResult == SOCKET_ERROR) {
printf("shutdown failed: %d ", WSAGetLastError());
closesocket(ConnectSocket);
WSACleanup();
return 1;
}

// Receive until the peer closes the connection
do {

iResult = recv(ConnectSocket, recvbuf, recvbuflen, 0);
if ( iResult > 0 )
printf("Bytes received: %d ", iResult);
else if ( iResult == 0 )
printf("Connection closed ");
else
printf("recv failed: %d ", WSAGetLastError());

} while( iResult > 0 );

// cleanup
closesocket(ConnectSocket);
WSACleanup();

return 0;
}




Tags: client socket win32소켓 소켓 클라이언트 Share on Facebook Share on X

◀ PREVIOUS
그들이 온다
▶ NEXT
세계를 경악시킨 中 ‘골판지 만두’는 없었다…베이징TV 직원이 조작
  Comments 0
Login for comment
SIMILAR POSTS

소켓 프로그래밍 기본 흐름 - Socket Programming Basic Flow (created at 2007-07-16)

Java로 구현하는 간단한 Client & Server 프로그램 (created at 2007-07-16)

소켓을 생성하여 CSocket에 Attach하는 방법 (created at 2007-07-19)

소켓으로 메일보내기 (created at 2007-01-30)

우분투 소켓 접속 제한 풀어 소켓 갯수 늘리기(How to increase maximum socket connection in Ubuntu?) (updated at 2023-12-17)

Ahrefs bot의 비상식적 사이트 크롤링 접근 차단 - robots.txt 수정 또는 .htaccess 파일 수정을 통해 차단 가능해 (created at 2014-06-09)

OTHER POSTS IN THE SAME CATEGORY

이해를 하기엔 남편이 너무 불쌍하다 (created at 2007-08-06)

아- 제발 덥다고 수도꼭지에 입대고 물좀 먹지 맙시다 (created at 2007-08-06)

무서운 개가 문 틈으로 머리를 내밀면.... ㅋㅋ (created at 2007-08-06)

다른 생명체로 새롭게 태어나신건가? 개신 (created at 2007-08-06)

보드카로 만드는 칵테일 7가지 (created at 2007-07-31)

안다쳤니 !? (created at 2007-07-23)

아톰 (created at 2007-07-23)

과욕의 결과 (created at 2007-07-23)

너무 잔인한 체벌 (created at 2007-07-23)

당신은 좌뇌 타입입니까? 우뇌 타입입니까? (created at 2007-07-20)

남자들은 모르는 여자들만의 고통 (created at 2007-07-20)

기가 막힌 된장녀... (진짜인지 아닌지 확인 불가...) (created at 2007-07-20)

2차원 개그 (created at 2007-07-20)

같은데 틀리다... 왜지!? (created at 2007-07-20)

세계를 경악시킨 中 ‘골판지 만두’는 없었다…베이징TV 직원이 조작 (created at 2007-07-19)

그들이 온다 (created at 2007-07-16)

400년전 걸리버 여행기도 - Sea of Corea (created at 2007-07-16)

일본에서 가장 똑똑한 사람 (created at 2007-07-16)

초코파이 (created at 2007-07-16)

여자가 반하는 남자 (created at 2007-07-16)

세상을 감동시킨 사진 한장 - 516혁명 후 군사 재판 현장에서... (created at 2007-07-16)

상상은 금물 (created at 2007-07-16)

선수보다 빠른 심판 (created at 2007-07-16)

최지우 & 전지현 일본에만 가면 걸리버??? (created at 2007-07-16)

초딩, 편의점에서 물건사고 내민 수표..쩝 (created at 2007-07-16)

우리나라보다 성평등한나라 (created at 2007-07-16)

이안 파장 (created at 2007-07-16)

이런 상황이 되면 도대체 뭐라고 그래야 되는거여 !? (created at 2007-07-16)

사상 최악의 축구장 폭행 사건 (created at 2007-07-16)

진짜같은 조각상 (created at 2007-07-16)

UPDATES

글루코사민 vs. 콘드로이친: 무엇이 더 나은 관절 건강 보조제일까? (created at 2024-04-22)

광주 5·18 민주화운동 알린 테리 앤더슨 前 AP 기자 (created at 2024-04-22)

햄과 소세지가 우리 몸에 일으키는 부작용 (updated at 2024-04-22)

콘드로이친의 염증 감소효과 (updated at 2024-04-22)

코사민 DS - 글루코사민+콘드로이친 복합물이 함유된 퇴행성 관절 건강보조제 (updated at 2024-04-22)

삼겹살 먹을때 환상조합 (created at 2024-04-22)

일본 여중생의 특이한 취향 (created at 2024-04-22)

우리가 먹는 약물이 바꿔버린 생태계 (created at 2024-04-21)

일본에서 그린 상상속의 사무직과 현실속의 사무직 (updated at 2024-04-21)

북한 미대생들이 그린 북한 최고존엄 김정은 (created at 2024-04-21)

입사 후 1년도 되지 않은 회사에서 구조조정에 의한 퇴직 불응에 따른 해고 처리시 대응 가능한 방법 (updated at 2024-04-20)

한고은님의 옛날 사진 (updated at 2024-04-20)

소녀대 - Bye Bye Girl (updated at 2024-04-13)

대한민국 날씨 근황 (created at 2024-04-13)

성일종 인재육성 강조하며 이토 히로부미 언급 - 인재 키운 선례? (updated at 2024-04-13)

일제강점기가 더 살기 좋았을지도 모른다는 조수연 국민의힘 후보 - 친일파? (updated at 2024-04-13)

Marshall Ha님의 샤오미 SU7 시승기 - 테슬라의 일론 머스크님이 긴장할만한 느낌 (updated at 2024-04-09)

윙크하는 귀염둥이 반려견들 (created at 2024-04-08)

달콤 살벌한 고백 (created at 2024-04-08)

북한 최정예 공수부대 훈련 모습 (updated at 2024-04-02)

맛있었던 친구 어머니의 주먹밥이 먹고 싶어요 (created at 2024-04-02)

자리 마음에 안든다고 6급 공무원 패는 농협 조합장 (created at 2024-03-26)

85세 딸 짜장면 사주는 102세 어머니 (created at 2024-03-26)

1990년대 감각파 도둑 (created at 2024-03-26)

치매에 걸린 69살의 브루스 윌리스가 전부인 데미무어를 보고 한 말 (updated at 2024-03-22)

경제는 대통령이 살리는 것이 아닙니다 라던 윤석열대통령 - 상황 안좋아지자 여러 전략을 펼쳤지만, 부작용 속출했던 2024년의 봄 (updated at 2024-03-13)

극빈의 생활을 하고 배운것이 없는 사람은 자유가 뭔지도 모를 뿐 아니라 왜 개인에게 필요한지에 대한 필요성을 못느낀다는 윤석열 대통령 (updated at 2024-03-08)

조선일보를 안본다는 사람들이 말하는 그 이유 - 천황폐하, 전두환 각하, 김일성 장군 만세? (created at 2024-03-07)

광폭타이어를 장착하면 성능이 좋아질거라는 착각 (updated at 2024-03-03)

면허시험장에서 면허갱신하면 하루만에 끝나나? (updated at 2024-03-03)