Mbed OSドキュメント翻訳の参考(API(SocketAddress))
SocketAddress
SocketAddressクラスを使用して、唯一のネットワーク・エンド・ポイントのIPアドレスとポート・ペアを表します.ほとんどのネットワーク関数は、IPアドレスの文字列表示を受け入れるためにリロードされますが、SocketAddressを使用すると、重複するネットワークトランザクション中にIPアドレスを解析するオーバーヘッドを回避し、最初のオブジェクトとして渡すことができます.
SocketAddressクラスリファレンス
SocketAddressクラスリファレンス
共通メンバー関数
template
SocketAddress (S *stack, const char *host, uint16_t port=0)
SocketAddress (nsapi_addr_t addr=nsapi_addr_t(), uint16_t port=0)
SocketAddress (const char *addr, uint16_t port=0)
SocketAddress (const void *bytes, nsapi_version_t version, uint16_t port=0)
SocketAddress (const SocketAddress &addr)
~SocketAddress ()
bool
set_ip_address (const char *addr)
void
set_ip_bytes (const void *bytes, nsapi_version_t version)
void
set_addr (nsapi_addr_t addr)
void
set_port (uint16_t port)
const char *
get_ip_address () const
const void *
get_ip_bytes () const
nsapi_version_t
get_ip_version () const
nsapi_addr_t
get_addr () const
uint16_t
get_port () const
operator bool () const
SocketAddress &
operator= (const SocketAddress &addr)
友元
bool
operator== (const SocketAddress &a, const SocketAddress &b)
bool
operator!= (const SocketAddress &a, const SocketAddress &b)
SocketAddressの例
次に、現在のUTC時間を読み出す例を示します.この例では、SocketAddressクラスを使用してサーバのIPアドレスとポートを取得します.
main.cppをMbed IDEにインポート
関連コンテンツ IPネットワークアーキテクチャ.
SocketAddressクラスを使用して、唯一のネットワーク・エンド・ポイントのIPアドレスとポート・ペアを表します.ほとんどのネットワーク関数は、IPアドレスの文字列表示を受け入れるためにリロードされますが、SocketAddressを使用すると、重複するネットワークトランザクション中にIPアドレスを解析するオーバーヘッドを回避し、最初のオブジェクトとして渡すことができます.
SocketAddressクラスリファレンス
SocketAddressクラスリファレンス
共通メンバー関数
template
SocketAddress (S *stack, const char *host, uint16_t port=0)
SocketAddress (nsapi_addr_t addr=nsapi_addr_t(), uint16_t port=0)
SocketAddress (const char *addr, uint16_t port=0)
SocketAddress (const void *bytes, nsapi_version_t version, uint16_t port=0)
SocketAddress (const SocketAddress &addr)
~SocketAddress ()
bool
set_ip_address (const char *addr)
void
set_ip_bytes (const void *bytes, nsapi_version_t version)
void
set_addr (nsapi_addr_t addr)
void
set_port (uint16_t port)
const char *
get_ip_address () const
const void *
get_ip_bytes () const
nsapi_version_t
get_ip_version () const
nsapi_addr_t
get_addr () const
uint16_t
get_port () const
operator bool () const
SocketAddress &
operator= (const SocketAddress &addr)
友元
bool
operator== (const SocketAddress &a, const SocketAddress &b)
bool
operator!= (const SocketAddress &a, const SocketAddress &b)
SocketAddressの例
次に、現在のUTC時間を読み出す例を示します.この例では、SocketAddressクラスを使用してサーバのIPアドレスとポートを取得します.
main.cppをMbed IDEにインポート
#include "mbed.h"
#include "EthernetInterface.h"
// Network interface
EthernetInterface net;
// Time protocol implementation : Address: time.nist.gov UDPPort: 37
typedef struct {
uint32_t secs; // Transmit Time-stamp seconds.
}ntp_packet;
int main() {
// Bring up the ethernet interface
printf("UDP Socket example
");
if(0 != net.connect()) {
printf("Error connecting
");
return -1;
}
// Show the network address
const char *ip = net.get_ip_address();
printf("IP address is: %s
", ip ? ip : "No IP");
UDPSocket sock(&net);
SocketAddress sockAddr;
char out_buffer[] = "time";
if(0 > sock.sendto("time.nist.gov", 37, out_buffer, sizeof(out_buffer))) {
printf("Error sending data
");
return -1;
}
ntp_packet in_data;
int n = sock.recvfrom(&sockAddr, &in_data, sizeof(ntp_packet));
in_data.secs = ntohl( in_data.secs ) - 2208988800; // 1900-1970
printf("Time Received %lu seconds since 1/01/1900 00:00 GMT
",
(uint32_t)in_data.secs);
printf("Time = %s", ctime(( const time_t* )&in_data.secs));
printf("Time Server Address: %s Port: %d
\r",
sockAddr.get_ip_address(), sockAddr.get_port());
// Close the socket and bring down the network interface
sock.close();
net.disconnect();
return 0;
}
関連コンテンツ