• 締切済み

VC++でのTCP/IP接続プログラム

こんにちは。 VC++で開発を行っています。 TCP/IP接続(ストリーム型)のプログラムがうまく書けません。 UDP/IP接続は出来たのですが・・・。 TCP/IP接続で、送受信可能なプログラムを作りたいと思っています。 一つのアプリケーションで、サーバーとクライアントの役割を持たせたいのですが・・・。 不可能でしょうか?? VC++でTCP/IPを利用したプログラムのサンプルでも構いません。 なにか情報をお持ちの方、教えてください。 よろしくお願いします。

  • dole
  • お礼率35% (12/34)

みんなの回答

回答No.3

doleさんがどの程度の知識を持っておられるかわからないので、 TCP/IPとプログラム(スレッド)に関する知識はあるものとして回答致します。 >サーバ用、クライアント用でソケットを作らなくてはならないのですよね??? SVR、CLIそれぞれにポートを持たなくてはならないのでそうなります。 >ローカルマシンでテストする際、 >同じアプリケーションで作ったサーバーソケットに >クライアントソケットを結びつけるのはむりですよね。。。。 1.一つのAP内にCLIとSVR二つのソケットを用意します。 2.SVRでリスニングし、CLIから自アドレスのSVRのポートにコネクトします。 3.SVRでアクセプトします。 これで通信は可能です。

dole
質問者

補足

すばやいご解答どうありがとうございます。 クライアントがうまくサーバーにコネクトできなかったので、お伺いしました。 WSAEWOULDBLOCKというエラーが発生してしまうのです。。。 がんばってみます。 すいません.....

回答No.2

回答としては可能です。 VC++を使用するのであればMFC(CSocket)を利用すれば簡単です。 製品に付属のヘルプ(MSDN)にソースが載っていますので、 そのまま流用できるかと思います。

dole
質問者

補足

ありがとうございます。 具体的な方法を教えていただきたいと思うのですが サーバ用、クライアント用でソケットを作らなくてはならないのですよね??? ローカルマシンでテストする際、同じアプリケーションで作ったサーバーソケットにクライアントソケットを結びつけるのはむりですよね。。。。 すいません、よろしくおねがいします。

  • brogie
  • ベストアンサー率33% (131/392)
回答No.1

API関係のサンプルプログラムがあります、参考になればよいですが。 http://tokyo.cool.ne.jp/masapico/api_index.html http://tokyo.cool.ne.jp/masapico/sample_index.html 以上です。

参考URL:
http://tokyo.cool.ne.jp/masapico/api_index.html,http://tokyo.cool.ne.jp/masapico/sample_index.html

関連するQ&A

  • VB.NETによるTCP通信プログラムについて

    VB.NETによるTCP通信プログラムについて VB.NETによりTCP通信プログラムを開発しようと思っておりますが、TCP通信はクライアントとサーバーに機能が分かれると思いますが、一つのアプリケーションでサーバー機能とクライアント機能を有するアプリケーションは開発が可能でしょうか? サンプルプログラムを探しているのですが、どれも、クライアントとサーバーのどちらかの機能だけですが、両機能を持ち合わせたサンプルを掲載されているサイトをご存じの方は、お手数ですが、教えて頂けると助かります。 ご教授のほど、よろしくお願い致します。 Windows XP SP3 Visual Studio 2008 Visual Basic

  • CQ出版Interface誌12月号のVC++でのTCP/IPサンプルプログラムは127.0.0.1以外でも使える?

    CQ出版Interface誌12月号のVC++でのTCP/IPサンプルプログラムは、 http://www.cqpub.co.jp/interface/download/contents.htm ”第1章 C言語で書くシンプルなWebサーバの製作” このサイトからダウンロードしてCプログラムを見てみたところ、クライアント側のexeファイルを起動すると自動的に127.0.0.1へ接続するようになっているようですが、これだと同じパソコンのみにしか接続できないような気がするのですが、この部分を192.168.1.*のようなIPアドレスに変更すればサーバプログラムと、クライアントプログラムを別々のPCで通信できるようになると言うことでしょうか。

  • TCP通信

    OS:Win2000、VisualBasic.netで開発しています。 現在TCP通信のプログラムを製造しています。 TCPサーバとTCPクライアントのテストアプリケーションを作成し、接続テストを行っているのですが、 サーバとクライアントの接続、データ送受信の確認はできました。 しかし、一度クライアント側から接続を切断(ソケットを消去)し、 再びソケットを生成してコネクト要求を出しても接続が確立できません。 このときサーバ側はなにも操作していません。 終始接続待機状態にしてあります。 ソースがないと分かりにくいかもしれませんが、 何か思い当たることがある方、アドバイスよろしくお願いします。

  • VC++でのTCP/IPサンプルプログラムでClient.exeを複数起動すると通信できない

    CQ出版Interface誌12月号のVC++でのTCP/IPサンプルプログラム http://www.cqpub.co.jp/interface/download/contents.htm 第1章 C言語で書くシンプルなWebサーバの製作 このプログラムのserver.exeを起動させて、Client.exeを複数起動させてみたのですが、Client.exeの片方が通信できるのですが、網片方のClient.exeはサーバとの通信ができていないようで、通信できていた方のClient.exeを停止させると通信ができるようになるようです。 このプログラムではClient.exeが複数あった場合に同時に通信を行わせると言うことはできないのでしょうか?

  • Winsockでの送信(TCP)

    Winsockでの送受信プログラムを作成しています。 システム構成としてはサーバーが1つあって、それに複数のPC(クライアント)を接続します。 そしてチャットのようにやりとりを行うプログラムを作成しています。 しかし、チャットと違う点は、文字を、指定した相手(IPで指定)にのみ送信するということです。 自分で調べた結果UDPを用いれば簡単だということを知りました。(sendtoで送信先IPが指定できるから) しかし、TCPのほうが信頼性が高いということでTCPでやりたいと思いました。(勉強にもなるので) どなたかやり方をご教授お願いいたします。

  • TCP/IP通信OCXのアウトラインを教えてください)

    Cの知識はありますが、 Windows開発は今回がはじめてです。 VC++6.0でTPC/IP通信を行うOCXを作成し、 クライアント(VB6.0で作成)から呼び出そうとしています。 TCP/IP通信のc/sサンプルプログラムはいくつかみましたが、 その機能をOCXの形にしたいときどう考えたらよいか アウトラインを教えていただけないでしょうか? わたしなりには以下のように考えました。 通信用のクラスを作成し、 メンバ変数(private)として ・サーバIP ・ポート番号 ・ソケットハンドル などを用意。 メッソッドとして ・接続(ソケット初期化~接続まで) ・送受信(ループ処理?) ・切断(シャットダウン~クリーンアップまで) イベントとして ・??? イベントとメソッドに何を用意すべきか (呼ぶべき関数と手順はわかるのですが、 メソッドとすべき単位がわかりません)と OCXから非同期モード設定関数(WSAAsyncSelect()) をよぶときの第2パラメタ(HWND)に 何をセットすべきかがわかりません。

  • UDPの接続って?

    Linuxとgccでプログラムしているのですが、 UDPによるデータ送受信で悩んでいます。 (すいません、前回も同じようなこと言いましたね(^^;) TCPであれば、サーバ側は 1.ソケット生成 2.バインド クライアント側は 1.ソケット生成 2.コネクト で通信路が確立されますよね。 UDPはどうなるんでしょうか。コネクションを張らないということは、サーバとクライアントは区別しないんですか? 今現在、TCPのプログラムのSOCK_STREAMとIPROTO_TCPの部分だけをUDPにして実行しているのですが、UDPのくせに Connectとかやってて気分が良くないのです・・・。(笑) 現在は、SetupForClient(サーバ側)とConnectToServer(クライアント側)というTCPの接続関数をそのまま使っています。前者はいいのですが、後者は明らかにUDP向けではないですよね。 もし、クライアント側の例があったら、教えていただければ嬉しく思います。

  • C#とTCP/IPを利用したサーバープログラム(複数クライアント対応)

    VC#とTCP/IPを利用したサーバープログラムを制作しています。 サーバーとクライアントの1対1での通信には成功したのですが、1つのサーバーで複数のクライアントと通信する方法がわかりません。 同じポート番号を利用できるのでしょうか。ただ単にTcpClientの配列を作ればいいのでしょうか。やはりクライアントの数だけスレッドを作らないといけないのでしょうか。 環境はWindowsVistaでMicrosoft Visual C# 2008 Express Editionを使用しています。 詳しい方がいましたらぜひ具体的なC#でのコード等を教えてください。 よろしくお願いいたします。

  • TCPプログラムについて質問です

    TCPプログラムについて質問したいのですが、LinuxでTCPを利用して簡易チャットプログラムを作ろうと思っています。 クライアント側で書き込んだ発言をサーバ側のプログラムで表示するところまでは出来ました。 しかし、クライアントにも何を発言したかわかるように新しくモニター用のプログラムを作りたいのですがうまく表示することができません。 どうすればいいのですか? モニター用のプログラムはクライアントでも表示できるようにクライアントプログラムを利用したもので作りたいと思っています。

  • SQL ServerにTCP/IPで接続出来ない

    サーバ:SQL Server2000、ファイヤウォールは無効設定済み クライアントがXP Proで、管理ツールにあるデータソース(ODBC)で、SQL Serverドライバで接続確認をしていました。 クライアントの設定欄で、ネットワークライブラリをTCP/IPにすると、 SQLState:'08001'SQL Serverエラー:17 「ODBC SQL Server Driver」「TCP/IP Sockets」SQL Serverが存在しないか、アクセスが拒否されました。 とエラーが出ます。 "TCP/IP"だと接続エラーになるのですが、ネットワークライブラリを"名前付きパイプ"で設定すると、正常に接続していると出ます。 どこの設定いけないのかさっぱりわからず、解決する手段がわかりません。 助けて下さい。 宜しくお願いします。

専門家に質問してみよう