Visual Stadio C++ 2010 単純なネットワークプログラミングWEB サーバに接続して、トップページだけを取得するプログラムのサンプルです。GUI を使った例が、あんまり検索にひっかからなかったのでメモっときます。Form.h の先頭に定義する内容です。定義部分#pragma once#include <stdio.h>#include <winsock2.h>#include <vcclr.h>#pragma comment(lib, "wsock32.lib")SOCKET sock;WSADATA wsaData;オペレーションコードは、[connect]が押されたら動作します。動作部分private: System::Void button1_Click( System::Object^ sender, System::EventArgs^ e) { int line = 0; char buff[32767] = ""; char *host; int port; int rt = 0; host = (char*)conv_char_ptr(textBox1->Text); if(host != NULL) { port = Convert::ToInt32(textBox2->Text); //接続 if(!TCPConnect(host, port)) { rt = -1; } else { //送信 if(!TCPSend("GET / HTTP/1.0\n\n")) { rt = -2; } //読み出し if(!TCPRead(buff,(int)sizeof(buff))) { rt = -3; } TCPClose(); } else { rt = -4; } if(rt == 0) { textBox3->Text = gcnew String(buff); } else { sprintf_s(buff, 32767, "ERROR: rtcode = %d\r\n", rt); textBox3->Text = gcnew String(buff); } free(host);}char *conv_char_ptr(System::String^ str) { pin_ptr <const wchar_t> wch = PtrToStringChars(str); char *buf = (char *)malloc(1024); sprintf_s(buf, 1024, "%S", wch); return buf;}bool TCPConnect(char *server,u_short port){ if(WSAStartup(MAKEWORD(1, 1), &wsaData)!=0) { return false; } sock = socket(PF_INET,SOCK_STREAM,0); if(sock==INVALID_SOCKET) { return false; } LPHOSTENT ipHost = gethostbyname(server); if(ipHost == NULL) { return false; } SOCKADDR_IN sockadd; memset(&sockadd, 0, sizeof(sockadd)); sockadd.sin_family = AF_INET; sockadd.sin_port = htons(port); sockadd.sin_addr = *((LPIN_ADDR)*ipHost->h_addr_list); if(connect(sock, (PSOCKADDR)&sockadd, sizeof(sockadd))!=0) { return false; } return true;}bool TCPSend(char*sendWord){ int nRtn; int i; i = strlen(sendWord) + 1; nRtn = send(sock, sendWord, i, 0); if(nRtn==SOCKET_ERROR || nRtn==0) { return FALSE; } else { return TRUE; }}bool TCPRead(char*buff,int bfSize){ int nRtn; nRtn = recv(sock,buff,bfSize,0); if(nRtn==SOCKET_ERROR || nRtn==0) { return FALSE; } else { buff[nRtn]='\0'; return TRUE; }}void TCPClose(){ closesocket(sock); WSACleanup();}