지난번에 send()함수에 넣기전 별도로 값을 받아서 병합해서 사용 하는 방법을 질문했었는데,
계속 구글링도 하고 오유 프게의 작은돼지님 께서 답을 찾는 방법을 알려주셔서 혹시 저와 같이 초보분들중 찾는 분이 계실까 하여 올립니다.
(저는 예전부터 system() 참 많이 썼는데 이 value에 입력받은 변수를 넣는 법을 이때까지 몰랐습니다!)
언어는 입출력문이 다소 불편하여 CPP 로 작성했습니다.
(해당 코드는 전체 소스가 아니여서 실행되지는 않습니다. 사용법 예를 들기위해 가져왔습니다.)
#include <winsock2.h>
#include <windows.h>
#include <iostream>
#include <string>
#pragma comment(lib, "ws2_32.lib")
using namespace std;
int main(int argc, char* argv[]){
char *i_url[100];
*i_url = argv[1];
string firstorder ="GET / HTTP/1.1\r\nHost:"; //첫번째 문자열입니다.
string lastorder ="\r\nConnection: close\r\n\r\n"; //세번째 문자열입니다.
string o_url; //1+2+3 문자열을 합친 문자열입니다.
firstorder.append(*i_url); //str.append()를 사용하여 firstorder에 *i_url 값을 이어 붙입니다.
o_url = firstorder.append(lastorder); //o_url은 위의 합친 문자열에 마지막 문자열을 합칩니다.
const char *cstr = o_url.c_str(); //send()는 *char형만 받기때문에, string으로 합친것들을 *char 형으로 형변환 해줍니다.
send(Socket,cstr,strlen(cstr),0); //보낼 내용과, 보낼 문자열(*char)의 길이를 측정해주는 strlen()를 사용했습니다.
}