VCでTCPクライアント(接続のみ)
mAddressは、ipAddressコントロールのDDXコントロール変数です。
void CMFCSample001Dlg::OnBnClickedButton1()
{
// TODO: ここにコントロール通知ハンドラー コードを追加します。
CString address;
mAddress.GetWindowTextA(address);
char *po = new char[address.GetLength() + 1];
::strcpy(po, address);
Connect(po);
delete[] po;
}
void CMFCSample001Dlg::Connect(char *po)
{
// IP アドレス,ポート番号,ソケット,sockaddr_in 構造体
char destination[32];
int dstSocket;
struct sockaddr_in dstAddr;
strcpy(destination, po);
// Windows の場合
WSADATA data;
WSAStartup(MAKEWORD(2, 0), &data);
// sockaddr_in 構造体のセット
memset(&dstAddr, 0, sizeof(dstAddr));
dstAddr.sin_port = htons(4700);
dstAddr.sin_family = AF_INET;
dstAddr.sin_addr.s_addr = inet_addr(destination);
// ソケットの生成
dstSocket = socket(AF_INET, SOCK_STREAM, 0);
//接続
if (connect(dstSocket, (struct sockaddr *) &dstAddr, sizeof(dstAddr))) {
TRACE("%s に接続できませんでした\n", destination);
}
TRACE("%s に接続しました\n", destination);
// Windows でのソケットの終了
closesocket(dstSocket);
WSACleanup();
}