|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB的TCP/IP通信
& ^7 w8 O1 \( k' t+ V+ T9 {" ?$ C' E/ x- ~* t
) f' J0 y# J) ?. F5 J9 A6 Q
tcpclient
. [/ T. T0 s' C* W+ [8 H# n, S# t4 f1 N
创建 TCP/IP 客户端对象以通过 TCP/IP 进行通信全页折叠
7 F! m3 Q6 `% K# j- p语法8 U5 Z, t% ]* z: u' E. }7 A
t = tcpclient('Address',Port)
; c$ J# u: B5 V& ut = tcpclient('Address',Port,'Timeout',<timeout_value>)* W+ @1 F( G5 Q$ T5 ^
t = tcpclient('Address',Port,'ConnectTimeout',<connect_timeout_value>)/ l7 p$ s" @1 v6 y/ W- X
说明1 \; X* N/ B/ |. ?7 }
示例
1 q+ z$ S6 d* V6 Ot = tcpclient('Address',Port) 构造一个与远程主机 Address 和远程端口值 Port 相关联的 TCP/IP 对象 t。地址可以为远程主机名称或远程 IP 地址。端口必须为介于 1 和 65535 之间的正整数。
' g9 s, j* u$ t% A1 \如果指定的地址或端口无效,或者无法建立与服务器的连接,则不会创建该对象。7 f$ H$ e5 L% O: G( d
示例
4 v1 e$ v' ` @t = tcpclient('Address',Port,'Timeout',<timeout_value>) 会额外设置一个超时值。Timeout 属性以秒为单位指定完成读写操作的等待时间,默认为 10。
7 W/ C6 { m/ n& S1 ?# |4 K7 e示例
7 M+ C4 v. g8 q3 d' kt = tcpclient('Address',Port,'ConnectTimeout',<connect_timeout_value>) 会额外设置一个连接超时值。ConnectTimeout 属性指定等待对指定远程主机的连接请求是成功还是失败的最长时间(以秒为单位)。默认值为 Inf。6 ]; q0 O6 I, I0 @# L
示例: |$ c- y; r `
全部折叠' H8 b$ |* g* X- ?# U, z. S8 }3 Z
使用主机名称创建对象; f! a6 ~" r7 q/ c
使用所示的主机地址和端口 80 创建 TCP/IP 对象 t。3 }6 a% l4 l7 \7 _" R
( h% V9 M! ~, l0 G; Dt = tcpclient('www.mathworks.com', 80)9 U0 M* e! D- B5 G1 ^; }- n3 |* T
t = " {0 d V' e( k: K
$ F/ L! {" @2 \. `! B4 d
tcpclient with properties:/ X- [5 O; o Z2 y1 z, ?4 B
* h7 f7 h2 h* L5 z' U0 K: g Address: 'www.mathworks.com'
! a& D3 t3 F! ~6 V5 k# R% c2 @) K Port: 805 [% n* N u+ @: x7 t
Timeout: 10
- `' t5 B! F z8 `, d6 p, l6 H" D3 z BytesAvailable: 0
# T0 k- Z, _4 K; W4 L ConnectTimeout: Inf1 h) n, X; v' q
注意
3 j0 a; x8 w b$ m
/ b7 S' h+ ]2 l1 ~, Z9 l( O使用主机名(如指定的 Web 地址或 'localhost')连接时,IP 地址默认为 IPv6 格式。如果您要连接的服务器需要 IPv4 格式,连接将失败。如果出现这种情况,您可以通过指定显式 IP 地址而不是主机名来进行连接。
; A' ?, G! \; s; k' V使用 IP 地址创建对象+ A+ n4 c2 Z. ?5 _2 t
使用所示的 IP 地址和端口 4012 创建 TCP/IP 对象 t。
( s( |. ]7 [- B V
( |5 L3 X9 N8 S: {t = tcpclient('172.28.154.231', 4012)
) A2 } N% e3 Y) E& C7 st = . _5 o; \5 A: ^$ m
- ?5 R% I8 I2 N" b v; r tcpclient with properties:
8 x Y# h4 p; k# z. K- k; S5 {( H) W" t* m) u8 u3 O
Address: '172.28.154.231'
# k- O! o& A) q$ R- i) I3 W+ z& t; \ Port: 4012
2 j3 w4 p) _. U( ? Timeout: 10
# w# @7 ^0 i- ^% p BytesAvailable: 0
9 S8 k! }4 _ v" f* W; n+ }) W* m ConnectTimeout: Inf
% s1 e9 m# f& |- [- ]% N1 ]创建对象并设置超时属性
2 ?2 [: l5 s7 U5 d创建 TCP/IP 对象 t,并将 Timeout 增加到 20 秒。
) C4 G+ ~& S" m! C* v; x( {) _; h8 M
% E4 ~1 L4 h" ?+ {# {t = tcpclient('172.28.154.231', 4012, 'Timeout', 20)6 X7 G4 V, B0 N% y, g
t =
+ J7 o# z7 K9 J0 H. \/ F7 S/ P6 u- \& B% h7 e0 |
tcpclient with properties:
# z1 D s8 L. U' @* m1 @, k
; d, b( i2 P% z5 U* o Address: '172.28.154.231'
, S0 n. m) }+ s# t i& L Port: 4012. R# u. g! |3 u+ Q! R
Timeout: 20& I* l8 V2 I' P2 B1 u
BytesAvailable: 0% P; I; s8 B0 j: B: y) M3 g
ConnectTimeout: Inf
2 N$ t- X. i( G% `输出会反映 Timeout 属性更改。) V+ T5 z8 y1 ^; x" J
创建对象并设置连接超时属性
; B# H+ W/ C& x: w' ]( Z/ ]+ N/ t创建 TCP/IP 对象 t,并将 ConnectTimeout 设置为 30 秒。% N% @/ e+ Z; J: D
+ N$ k& D, t2 R5 Wt = tcpclient('172.28.154.231', 4012, 'ConnectTimeout', 30). w% b6 W1 S* O g+ W0 Q# k( P
t =
5 y4 c1 ]# Q! J& l9 g$ }. e/ `3 ?/ O' I
tcpclient with properties:6 Z/ b% z; z! C& T2 B" Y, h
0 V: o5 _9 M, c1 z
Address: '172.28.154.231'
7 q: H& M8 i4 w% q6 g Port: 4012; Z+ ~0 x0 L2 L3 D5 j$ W
Timeout: 10
: w( |# p0 X" @, h7 B$ X4 M BytesAvailable: 0
9 E) P4 r8 d( W: e ConnectTimeout: 305 R L, z, `# P, ?7 W8 n
输出会反映 ConnectTimeout 属性更改。
6 [: M- H8 E7 e1 q+ O/ {输入参数 T7 F! a! G# T
全部折叠
$ v0 G) I" P* M: h7 FAddress - 要连接的远程主机名称或 IP 地址9 r- p4 _: T, B
字符矢量
( X+ y, B7 j# J9 H+ a要连接的远程主机名称或 IP 地址,指定为字符矢量。在创建 tcpclient 对象时将地址指定为第一个参数。7 ~6 f" {+ q. L& T
3 ~3 `6 p; T! W6 U4 Z5 K
示例:t = tcpclient('www.mathworks.com', 4012)
1 K5 C& |6 L* u+ _( a8 O, G b0 P" t8 J" O
数据类型:char
3 O# f( s: d% l( K# @) W# rPort - 要连接的远程主机端口. }1 K, n, v* b
数值标量
1 F. y/ _& ]9 E# |* q2 B" T1 z6 o要连接的远程主机端口,指定为数值标量。在创建 tcpclient 对象时将端口号指定为第二个参数。Port 必须为介于 1 和 65535 之间的正整数。4 J; @/ ^6 i4 F v7 N
3 R: f4 t I n+ X, ?- i; x! L
示例:t = tcpclient('www.mathworks.com', 4012)/ N2 p' T9 f: b3 u
" N7 |! k# x+ V( T% J2 s- J数据类型:double
; O7 ?% n4 r) D h1 x7 O名称-值对组参数8 U9 W. |3 t+ S5 n, F
指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在单引号 (' ') 中。您可采用任意顺序指定多个名称和值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。
! F9 j0 E! D8 o' U/ S3 @" }+ O3 W9 M
$ D& a' z3 o; w示例:t = tcpclient('172.28.154.231', 120, 'Timeout', 15, 'ConnectTimeout', 30)
9 D) C" @$ Z3 g, H0 i3 C9 d全部折叠 l3 S5 P# f6 b- y7 e
'Timeout' - 读/写操作的超时
3 b+ r( j2 a/ H10(默认) | 数值标量' A0 o# [9 u( J9 N0 }
读/写操作的超时,指定为以逗号分隔的对组,包含 'Timeout' 和一个 double 类型的正值。您可以在创建对象期间或在创建对象之后更改该值。
$ F4 ]3 k* b) U6 l' q: f& h$ L6 U8 N4 S& j: c4 h# m
有关如何在创建对象之后更改超时值的信息,请参阅“配置 TCP/IP 通信的属性”。' e v- H3 J c6 J/ M( Q
( w; k8 I" T$ U9 C
示例:t = tcpclient('172.28.154.231', 4012, 'Timeout', 20)0 J, `: ~/ r. @) z$ i$ y' L
: {6 J X% W& }, u( I1 c$ b数据类型:double
, {/ J. X& B1 H- D'ConnectTimeout' - 远程主机连接超时值. r* Q1 K- P5 E% l; d7 O; _
Inf(默认) | 数值标量
. z- [0 t2 C* c8 V. z# L远程主机连接超时值,指定为以逗号分隔的对组,包含 'ConnectTimeout' 和一个 double 类型的正值。该属性指定等待对指定远程主机的连接请求是成功还是失败的最长时间(以秒为单位)。您只能在对象创建过程中更改该值。7 T9 o: V& n+ d% E# K4 o2 _( E5 H! \
& |: \7 G4 |* ]3 S0 P' a示例:t = tcpclient('172.28.154.231', 4012, 'ConnectTimeout', 30)
) X% b4 p6 C" ] c! b# A. m' q0 x& x9 _, k# G
- [0 E0 m$ q4 d
! P- V b9 \5 @: D. z, i+ o- x
d& |2 c6 F; T0 {% w5 Z
* _9 ~# n# k2 T- T7 J. F2 h, ^) G% r+ y! T
/ m5 z! {+ Y6 f5 R, y" a
( E7 F+ j; A6 Z Y, l
* M! {* J" @0 A
! C: d$ ?: B7 m" @1 M0 L
; E& Y$ b; g3 _5 I* s. g( B6 n E% d- l' j4 V% e! h* K( [
: F/ {) u9 A1 J @& V6 L( {$ h0 b
- l* j3 v/ d C0 p5 D- _7 _ b/ m" r' F8 S z& Z
|
|