###前提・実現したいこと
WindowsPhoneとPCをソケット通信で接続したいです。 WindowsPhone側(クライアント)とPC側(サーバー)という形です。 WindowsPhoneのアプリ開発ではprintfなどが使えるのか。
###発生している問題・エラーメッセージ
メイン画面にあるボタンを押すと下のコードが実行されます。 クライアント側のプログラムを開発しているのですが、接続できない状況のはずなのに接続完了の文字が出てくる。 printfが現段階では使えないのでテキストブロックに文字を表示しているがprintfは使えるのか。
###該当のソースコード
SOCKET s; //ソケット //接続するサーバの情報 struct sockaddr_in dest; //接続するサーバのIPアドレス //xxx.xxx.xxx.xxxの形式で指定する char destination[] = "xxx.xxx.xxx.xxx"; char buffer[1024]; //ソケット通信の準備 WSADATA data; WSAStartup(MAKEWORD(2, 0), &data); //接続先(サーバ)のIPアドレス情報を設定 memset(&dest, 0, sizeof(dest)); //ポート番号はサーバプログラムと共通 //ポート番号は7000番で固定にする dest.sin_port = htons(7000); dest.sin_family = AF_INET; dest.sin_addr.s_addr = inet_addr(destination); //ソケットの生成 s = socket(AF_INET, SOCK_STREAM, 0); //サーバへの接続 if (connect(s, (struct sockaddr *) &dest, sizeof(dest))){ //TxtB2に文字を表示する this->TxtB3->Text = "接続できませんでした"; // printf("%sに接続できませんでした\n", destination); // return -1; } this->TxtB3->Text = "接続しました"; //printf("%sに接続しました\n", destination); //送信する文字列はテキストボックスから持っていくようにする // Txt1->Text = buffer; エラーだけどこんな感じで代入したい // printf("サーバに送信する文字列を入力してください\n"); // scanf("%s",buffer); //サーバにデータの送信 send(s, buffer, sizeof(buffer), 0); //サーバからデータの受信 ★ recv(s, buffer, 1024, 0); printf("→%s\n\n",buffer); //Windowsでのソケット終了 closesocket(s); WSACleanup();
###試したこと
IPアドレス、ポート番号を接続できないように変更したが「接続完了」が表示される。 ブレークポイントを置いて1行ごと確認したが「★」の所で「接続完了」が出る。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
興味深いタイトルなので、間違って何度も開いてしまいます。できれば「解決済」にしていただけませんか?
回答1件
あなたの回答
tips
プレビュー