• 検索結果がありません。

setsockopt を使うと、実行中にスタックのオプションを設定できます。この関数は SO_SNDBUF および TCP_NODELAYオプションをサポートします。

構文

int setsockopt( SOCKET s, int level, int optname,char * optval, int optlen );

パラメータ

s - ソケットに対する前回の呼び出しから返されたソケット記述子 level - SOL_SOCKET専用

optname - 設定するオプション 選択可能なオプション

SO_SNDBUF tcpソケットに対してsend APIで使う送信バッファのサイズを設定します。

TCP_NODELAY ソケットのNagglesアルゴリズムを有効または無効にします。既定値では、Naggles アルゴリズムは有効です。これを無効にするには、optvalデータに非ゼロ値を使い ます。

optval - オプションデータへのポインタ optlen - オプションデータの長さ 戻り値

setsockoptの実行に成功すると、値0が返されます。SOCKET_ERROR (-1)の戻り値は、エラー条件を示します。

前提条件 なし

副次的影響 None

Example ...

//

SetupDefault_IP_MAC();

MSTimerInit(36000000);

InitStackMgr();

TickInit();

//create tcp client socket

if( (Sock = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP )) == SOCKET_ERROR ) return -1;

int len = 1;

setsockopt( Sock, SOL_SOCKET, TCP_NODELAY, (char*)&len, sizeof(int) );

...

よく寄せられる質問 (FAQ)

Q: このスタックは全てのBSDソケットAPI関数を 実装していますか。

A: いいえ。このスタックはBSD APIの一部だけを 実装しています。

Q: UDP とストリーム ソケットを同時に開く事は できますか。

A: MAX_SOCKETを超えない限り、型に関係なく複 数個のソケットを開く事ができます。

Q: このスタックはRTOSと一緒に使えますか。

A: RTOS またはカーネルと一緒に使えます。この スタックは単一スレッドとして実装されるた め、スタックAPIは単一スレッドから呼び出す 必要があります。API はスレッドセーフではな いため、複数のスレッドがAPI関数を呼び出す 必要がある場合は、1 つのクリティカル セク ション内で呼び出す必要があります。

まとめ

このスタックは、PICマイクロコントローラを使った 組み込みアプリケーションに、高機能な通信APIセッ トを提供します。BSD APIとの互換性が維持されるた め、アプリケーションをインターネットやローカル ネットワークに非常に柔軟に組み込む事ができます。

BSD APIは、バイトレベルではなくバッファレベルで

動作するため、特に16および32ビットPICマイクロ コントローラを使うシステムでは、性能が大幅に向上 します。

参考資料

Jeremy Bentham, “TCP/IP LEAN:Web Servers for Embedded Systems”, (Second Edition).

Manhasset.NY:CMP Books, 2002

W. Richard Stevens, “TCP/IP Illustrated”.Indianapolis, IN:Addison-Wesley Professional, 1996.

N. Rajbharti, AN833, “The Microchip TCP/IP Stack”

(DS00833).Microchip Technology Inc., 2002.

Socket API Manual Pages:Richard Verhoeven, enhanced by Michael Hamilton, “VH-Man2html”, Computer Science @ Vassar College,

http://www.cs.vassar.edu/cgi-bin/man2html?socket+2.

Software License Agreement

The software supplied herewith by Microchip Technology Incorporated (the “Company”) is intended and supplied to you, the Company’s customer, for use solely and exclusively with products manufactured by the Company.

The software is owned by the Company and/or its supplier, and is protected under applicable copyright laws. All rights are reserved.

Any use in violation of the foregoing restrictions may subject the user to criminal sanctions under applicable laws, as well as to civil liability for the breach of the terms and conditions of this license.

THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.

補遺 A: ソースコード

デモ アプリケーションとサポートファイルを含む Microchip社製BSD Socket API対応TCP/IPスタック の完全なソースコードは、無償ライセンス契約の下に お使い頂けます。全ての内容を収めたアーカイブ ファ イルは、Microchip 社ウェブサイトからダウンロード できます:

www.microchip.com

ダウンロード後に、必ずversion.logファイルを開 いて、最新のリビジョンレベルとソフトウェアの変更 履歴を確認してください。

改訂履歴

リビジョン A (200710)

本書は初版です。

本書に記載されているデバイス アプリケーション等に関する 情報は、ユーザの便宜のためにのみ提供されているものであ り、更新によって無効とされる事があります。お客様のアプ リケーションが仕様を満たす事を保証する責任は、お客様に あります。Microchip社は、明示的、暗黙的、書面、口頭、法 定のいずれであるかを問わず、本書に記載されている情報に 関して、状態、品質、性能、商品性、特定目的への適合性を は じ め と す る、い か な る 類 の 表 明 も 保 証 も 行 い ま せ ん。

Microchip社は、本書の情報およびその使用に起因する一切の

責任を否認します。Microchip社の明示的な書面による承認な しに、生命維持装置あるいは生命安全用途にMicrochip社の製 品を使用する事は全て購入者のリスクとし、また購入者はこ れによって発生したあらゆる損害、クレーム、訴訟、費用に 関して、Microchip社は擁護され、免責され、損害をうけない 事に同意するものとします。暗黙的あるいは明示的を問わず、

Microchip社が知的財産権を保有しているライセンスは一切譲 渡されません。

商標

Microchip 社の名称と Microchip ロゴ、dsPIC、FlashFlex、

KEELOQKEELOQロゴ、MPLAB、PIC、PICmicro、PICSTART、

PIC32ロゴ、rfPIC、SST、SSTロゴ、SuperFlash、UNI/Oは、

米 国お よ びそ の 他の 国 にお け る Microchip Technology Incorporatedの登録商標です。

FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、

MTP、SEEVAL、Embedded Control Solutions Companyは、

米国におけるMicrochip Technology Incorporatedの登録商標 です。

Silicon Storage Technologyは、その他の国におけるMicrochip Technology Incorporatedの登録商標です。

Analog-for-the-Digital Age、Application Maestro、BodyCom、

chipKIT、chipKITロゴ、CodeGuard、dsPICDEM、dsPICDEM.net、

dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、

HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、

MPASM、MPF、MPLAB認証ロゴ、MPLIB、MPLINK、mTouch、

Omniscient Code Generation、PICC、PICC-18、PICDEM、

PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、

SQI、Serial Quad I/O、Total Endurance、TSHARC、UniWinDriver、

WiperLock、ZENA、Z-Scale は、米国およびその他の国におけ Microchip Technology Incorporatedの登録商標です。

SQTPは、米国におけるMicrochip Technology Incorporated のサービスマークです。

GestICとULPPは、その他の国におけるMicrochip Technology Germany II GmbH & Co. & KG (Microchip Technology Incorporatedの子会社)の登録商標です。

その他、本書に記載されている商標は各社に帰属します。

©2013, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved.

ISBN: 978-1-62077-547-9

Microchip

通している同種製品の中でも最も高度であると考えています。

しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、

Microchip社データシートにある動作仕様書以外の方法でMicrochip社製品を使用する事になります。このような行為は知的所

有権の侵害に該当する可能性が非常に高いと言えます。

Microchip社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。

Microchip社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護

機能とは、Microchip社が製品を「解読不能」として保証するものではありません。

コード保護機能は常に進歩しています。Microchip社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著

Microchip社では、ChandlerおよびTempe (アリゾナ州)、Gresham (オレゴン州)の本部、設計部およびウェハー製造工場そしてカリフォ ルニア州とインドのデザインセンターが ISO/TS-16949:2009認証を 取得しています。Microchip社の品質システム プロセスおよび手順は、

PIC® MCUおよびdsPIC® DSC、KEELOQ® コード ホッピング デバイ ス、シリアルEEPROM、マイクロペリフェラル、不揮発性メモリ、ア ナログ製品に採用されています。さらに、開発システムの設計と製造 に関するMicrochip社の品質システムはISO 9001:2000認証を取得し

QUALITY MANAGEMENT SYSTEM

関連したドキュメント