• ベストアンサー

DOS上でTCP通信を行うプログラムの作成

DOS上でTCP通信を行うプログラムを作成する必要が出てきましたが、どのように作成すればよいかわからない状態です。 動作環境としては、DOS上にLanManagerをインストールしたPCで、コンパイラは、MS-C7.0です。 WindowsではWinSockを使用したプログラミングの経験はありますが、DOSではどのように行えばよいかわかりません。 ライブラリなどが必要と思うのですが、フリーのライブラリなどがあるのでしょうか。 何か情報があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nobe
  • ベストアンサー率66% (59/89)
回答No.3

趣味も合わせて実務経験からご回答申し上げます。 まず必要なのは、パケットドライバというものです。 むかし、通常パケットドライバはネットワークカード製品についていたものですが、3ComやIntelは別途配布する形でしたのでネットワークカード製品には付いていません。 最近はDOSベースで使うユーザーも少ないためか日本国内ではパケットドライバの入手は困難です。 PC98とかだと更に難しいです。 PC/AT互換機やDOS/Vなら、 幸いなことに、 古くから良く知られているダウンロードサイトで http://www.simtel.net/ があります(英語)。 日本には無いとてつもなく大きなサイトで、DOSでもMacでもOS-9でも何でもあります。 ここで半角英字キーワード「packet driver」で検索してください。 例) ・3c509a.zip - 3c509 (Etherlink III) packet driver, v10.1 ・exp16104.zip - Intel EtherExpress 16 packet driver for new TP  などがあります。 自分の環境に合ったネットワークドライバがどうしてもほしいときは  http://www.network-drivers.com/ から検索してください(これも英語)。 世界中のネットワークカードが検索できて、対応していればDOS用のパケットドライバを手に入れることができます。 DOS上でTCP/IPをアプリとして使うだけなら、DOSPPPというものを使えばメールやブラウザを使用できます。 simtel.net 等のダウンロードサイトで「DOSPPP」で検索すればその手のプログラムが探し出せます。 ◆プログラミングについて パケットドライバは最下位のレイヤーに相当するので、プログラミングは、基本的にはアセンブラでコーディングします。 パケットドライバはプロトコルスタックを実装しています。操作は、このプロトコルスタックと呼ばれる部分の操作が大半になります。 TCP/IPを使うなら、TCP/IPスタックですね。稀にドライバによっては含んでいないこともあるので注意してください。 WinSock等はいわゆる、このプロトコルスタックを操作するライブラリなのですが現在はフリーソフトではなくなったため使えません。(フリーソフトだったのは20年以上も前の話です ^^;) 基本的に、どのメーカーのパケットドライバでもNovell-NE2000用に書かれたプログラムは必ず動作します。つまり、このNE2000用のプログラムを作ればいいわけです。 プログラムを作るには、このパケットドライバを呼び出します。いくつかのパケットドライバを落としてくると、中にはサンプルのプログラムとかが入っています。この辺を参照しながら作ってゆくと幸せになれるかもしれません。 環境の構築方法についてはもっと詳しい方法が、 Googleで「パケットドライバ 使い方」等で引いてみると出てきます。 お役に立ちましたら幸いです。

その他の回答 (3)

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.4

 TCP/IPの通信で何をするのかが問題ではないかと思います。  LanManagerを導入するとNETBIOSのインターフェースが導入されるのでWindowsNT系コンピュータとの間で認証やファイル共有がプログラミングなしでできるようにはなりますが、これはTCP/IPと関係ないばかりでなく、貴重なコンベンショナルメモリーを圧迫してDOSアプリを使うことができなくなる可能性があります。そこで、みなさんがパケットドライバーを推奨していらっしゃるのだと思います。  もし、Socket通信をするのであればWatt-32のようなDOS用のライブラリを導入すればいいと思います。ただ、MSCは使えないようです。

参考URL:
http://homepages.nildram.co.uk/~phekda/richdawe/dossock/
  • ara_ara
  • ベストアンサー率35% (124/348)
回答No.2

そもそもDOSには標準のTCP/IPプロトコルスタックはありませでした。 また、LANカードのドライバもDOSのNDISやODIをサポートしたものが必要です。 ライブラリ以前にTCP/IPプロトコルスタックやLANカードをどうするかということから検討する必要があると思います。

  • you-m
  • ベストアンサー率58% (190/327)
回答No.1

DOS版の著名なネットワークソフトは、これを使用している物が多いようです。 http://www.programmersheaven.com/zone3/cat531/13649.htm http://www.programmersheaven.com/zone3/cat531/13649.htm LANカードはPacketDriverと呼ばれるDOS用のドライバが用意されているものか、NDISドライバが用意されていれば、PacketDriverとのブリッジが可能なようですね。

関連するQ&A

  • C#でUDP通信

    C#でネットワークプログラミングを行いたいと思っています。 使用するプロトコルはUDPです。 TCP通信の参考書やwebページは見掛けるのですが UDPに関する資料はなかなか見つけることができません。 コーディングする上で、 TCP通信のプログラムをどのように変えたらよいのか 教えてください。 ちなみに、Windowsで開発する場合は WINSOCKを使ったほうがよろしいのでしょうか。

  • TCP/IP通信型プログラムです。作成するのはクライアントです。たとえ

    TCP/IP通信型プログラムです。作成するのはクライアントです。たとえば、サーバから入力を求められ、それが正しくあれば、次の状態へ。正しくなければ、状態を遷移させなかったり。そして、状態が遷移したということをサーバに伝えなければなりません。自分としては、条件式などを利用しようかと思っているのですが・・・。(状態遷移図の作成ではありません。) ほんのわずかなヒントでもいいので、お助け願います。

  • TCP/IP通信型プログラムです。作成するのはクライアントです。たとえ

    TCP/IP通信型プログラムです。作成するのはクライアントです。たとえば、サーバから入力を求められ、それが正しくあれば、次の状態へ。正しくなければ、状態を遷移させなかったり。そして、状態が遷移したということをサーバに伝えなければなりません。自分としては、条件式などを利用しようかと思っているのですが・・・。(状態遷移図の作成ではありません。) ほんのわずかなヒントでもいいので、お助け願います。

  • BCC Developer開発環境でソケット通信プログラムは作れる?

    最近、”14歳からはじめる リアルに動くゲーム物理プログラミング”という本を買い、無料で使えるBCC Developerという無料コンパイラを使って見たのですが、このコンパイラでTCP/IP通信なんかのプログラミングもできるんでしょうか。わかる方いらっしゃったらご教授お願いいたします。

  • eMbeddedVBでのUDP通信プログラムの作成

    Windows CE(PocketPC2002)上で,UDPプロトコルの制御装置との通信プログラムを作成しております。 CEでのWINSOCKコントロールはUDPプロトコルを使用することができません。 このような場合,WINSOCKコントロール使用しないで作成する方法がありますでしょうか?。 それともeMbeddedVCであれば作成可能でしょうか?。ご経験の方がいらっしゃいましたら,ご教授願います。

  • TCP/IPソケットプログラミングJava編について

    TCP/IPソケットプログラミングJava編という本を使って通信ネットワークの勉強をしています。 この本は一通り読んでプログラムの動作確認を行ったのですが、第4章の圧縮サーバのプログラムの動作確認が取れません。 圧縮サーバのプログラムは、本に乗っていなくて自作する必要があります。 どなたかこのプログラムを作成した方いらっしゃいませんか? いらしたらソースコードを教えていただきたいです。

    • ベストアンサー
    • Java
  • 現在WINSOCKコントロールを用いて通信プログラムを作成しています

    現在WINSOCKコントロールを用いて通信プログラムを作成しています サーバ側の設定が IP:192.168.1.10 Port:10000のとき、 Winsock.state = 7(Listen状態) クライアント側で Winsock.Close Winsock.RemoteHost = "192.168.1.10" Winsock.RemotePort = 10000 Winsock.Connect で実行したときにエラー10061で返ってきます。 NETSTAT -anで他にこのポートを使用ものは有りませんでした どのようにすればエラーが回避できますでしょうか?

  • dosプログラムのショートカットが作れません

    Win7(64ビット版) で昔作成したdosプログラムを実行したいのですが、うまく実行できません。 XPモードはインストールしてありません。 検索したところ、ショートカットを作成し、[別メモリ領域で実行する] チェック ボックスをオンにすればよいとの記事を見つけました。 http://technet.microsoft.com/ja-jp/windows/gg410655 そこで、ショートカットを作成しようとしたところでつまづいています。 ショートカットの作成方法 あるいは、DOSプログラムの実行方法をお教えください。 質問が前後しますが、XPモードをインストールしないとDOSプログラムの実行は無理なのでしょうか? なお実行したいDOSプログラムは、標準入力のデータを処理して標準出力に出す、いわゆるフィルタープログラムです。 100行程度のプログラムなので、最悪、Win7環境で再コンパイルして、Win7用のプログラムを作って対応しますが、可能ならDOSプログラムをそのまま使いたいと思っています。

  • チャットプログラムのセキュリティ

    現在チャットプログラムを作成しようと考えています。 通信はP2Pで行い、言語はC++、「WinSock」を用いて通信しようと考えています。 実用的なものを作りたいというよりは、あくまで勉強を目的に作りたいと思います。 そこで気になったのが、セキュリティについてです。チャットプログラムを作る際に、セキュリティに関して、留意しておいた方がいいことはありますか?それともセキュリティソフトが入っている環境であれば、特に意識せずプログラムを動かしても問題はないのでしょうか? 動作環境は、一般的な環境で動かすことを想定し、セキュリティソフトが入っている環境で動作するものと仮定しています。 分かる方、回答よろしくお願いします。

  • コンソールプログラムで使用するライブラリについて

    今まで疑問に感じつつないがしろにしていた部分なんですが、 例えばWin32APIを使用してプログラミングする時にコンパイラはリンクの際にwindowsのシステムフォルダ内にあるdllファイルを参照してリンクするんですよね(あってます?)?ではコンソールプログラム(dos上のプログラム)をリンクする際にはどうなるのでしょうか(例えばCの標準関数のライブラリはどこにあるのでしょうか?)? 私の予想では標準関数に関してはコンパイラが予め用意している静的ライブラリを使ってリンクしているんじゃないかと思うのですが実際どうなんでしょうか? 大した質問でもないのに長々とした文章になってしまいましたがよろしくお願いします。

専門家に質問してみよう