全球FlexSim系统仿真中文论坛
标题:
flexsim 如何使用server命令建立服务器
[打印本页]
作者:
ldl89772962
时间:
2016-10-11 14:06
标题:
flexsim 如何使用server命令建立服务器
如何使用server命令建立服务器
) W. ~! g9 k0 _0 k/ G
9 v3 `. A8 M9 H+ o$ S" p. o
代码如下,可是连接不上
/**Custom Code*/
$ m$ [8 K/ |5 ], E" B2 ^4 v! `
treenode current = ownerobject(c);
9 ^8 p7 a7 f5 \) Z' O( A7 p
8 u, [0 r# ^8 n+ U, s
senddelayedmessage(current,0.5,NULL);
$ E) H6 O" @. ^. k* d% D
//SERVER:初始化
& I& K0 p9 p# K& F3 y
if(getlabelnum(current,"startserver"))
7 L* u% T3 _" f0 J( e
{
$ b5 o) i% l! o! i
setlabelnum(current,"startserver",0);
0 e5 h7 Z$ o3 A" l2 [# |
1 M3 W7 I& e! D0 n+ T9 X0 S/ N3 H
if(getlabelnum(current,"socknum")) //防止重复起server
) F) a/ w: H; {0 k F
return 0;
3 p; R3 a. l% u; n5 h, S
$ C; z& e9 v" F+ Y
int m=getlabelnum(current,"serverport");
2 X8 @! ~6 {- q4 w3 S+ Y7 G) e, ~! H
servercreatemain(m);
' D- w7 \' ^$ I5 F! d
- p7 o2 ^0 S2 V% g2 q# U9 J' d
setlabelnum(current,"servernum",1); //初始化成功后将值存入servernum
/ g' r$ S) G: C7 P; M" U- B7 A" ^
pt("server()成功!");pr();
% z' N: O: P: X. |! K, u
}
7 \* X- H* F& Y$ C, x9 N
8 {& i/ O* T, K
' Q$ q' ]# P$ `' B! r" M: s$ @
if(getlabelnum(current,"startserver"))
9 x! C# z+ [1 k& N! L! I& ?9 Q, g
{
4 C$ {' ?( A) Z9 w V
: y/ I0 B% Q* }, p& b
int client = serveraccept(0);
1 ]% m T9 w! u: U/ a2 j; `. v1 `* h( _
}
% x$ q1 m6 K4 ?6 j4 D4 g
8 X* k/ }0 r% r8 \2 U% X
//关闭连接
$ b" G# N2 x9 Y1 j" m0 Y1 S
int client = serveraccept(0);
: c7 X8 s- j w* D
if(getlabelnum(current,"servercloseconnection"))
5 U |0 t4 w% Y- }
{
# r7 S2 s+ l/ ` _" u3 N5 R& r
setlabelnum(current,"servercloseconnection",0);
+ W3 j9 E- \3 W \, W& W. S6 ]0 z
" h+ z5 e5 a' ]' N" b9 h" m% W
if(!getlabelnum(current,"servernum")) //未启用server,则退出
9 s3 ?5 C( Q ^' H
return 0;
0 d! n) i. Y; F* u& {
6 N. l2 r% e: H0 L8 H8 A, S
servercloseconnection(client);
4 c# q. |! R4 ^: U. ]! h0 t+ g
+ f) y" K! G0 N' ]1 p! V
pt("servercloseconnection()成功!");pr();
( y1 r' D! s% K' S8 ?8 v7 N
& Y1 A7 d) X" V) S+ U+ F- V
}
8 @# J% |/ \1 ^: U+ v
5 C* l. H# f% j u' R, v% P
//关闭SERVER
; f- d3 L: H; m' C
) L3 o1 e; l' q: v4 [, K# t
if(getlabelnum(current,"serverclosemain"))
2 |; {, v2 w) m( H& n
{
, u& |, G c$ V6 U3 L1 Q9 |
setlabelnum(current,"serverclosemain",0);
9 Y) k3 i2 k- Z+ u% H0 ]
$ a8 {0 J' `) U% ], V/ g
if(!getlabelnum(current,"servernum")) //未启用server,则退出
1 @8 E0 C# a- r3 O
return 0;
' c" G5 M( I+ |" m/ f, x5 d
/ n! C, c7 J) S: J# g$ T
serverclosemain();
' v# I E8 E( G ~8 e
setlabelnum(current,"servernum",0);
& {5 |% d c$ r" q
pt("serverclosemain()成功!");pr();
1 Z) Q: E: V9 V# ~! n+ v
}
1 m: @/ f+ D' q- D6 K7 N
& h; u- i* S/ a6 L5 _1 n5 P7 |
1 ?. M0 }% W0 o
//接受信息
9 ~" X4 E5 r$ i
if(getlabelnum(current,"servernum")) //如果起了server服务(servernum标签非零)
) l/ N0 p) ^% ?/ h
{
- k8 Y8 m8 n. }5 L* M0 \1 }
int servernum = getlabelnum(current,"servernum");
( k# b+ h' Z+ u" h
3 h1 _) j5 @: A% d7 g& m2 T
string buffer = "";
n, d- E9 ~; G2 p. H* X5 K
3 ~+ n Y. `0 H# p/ y
buffer = clientreceive(servernum, NULL, 1024, 1);
# m% V9 p, h6 t, [; d* w# z8 M
, M, ]8 T9 E7 e* c
if(stringlen(buffer))
" ^) V: u j5 S
setlabelstr(current,"serverreceive",buffer);
+ X5 m! C* `1 M9 g* H4 O
* m% e4 P, c0 y
}
8 v0 w1 s. @( J2 I: `
//发送信息
& m" P! q: j& V7 [9 R4 f. |
! A1 ]4 v2 N* n
8 w" A8 w& E3 z! \+ E6 `& X( p
if(getlabelnum(current,"servernum")) //如果起了SERVER服务(servernum标签非零)
3 ^ Z. B u5 I0 n2 a; u* }- S* v
{
' ]* r1 D/ _) _& m
string buffer = getlabelstr(current,"serversend");
+ D( i% \+ k, `3 k) c
* a3 P+ s- }7 _" U: f# a
if(stringlen(buffer))
4 \6 R& }" X/ b9 J. \
{
# M' ^- E/ q8 x( @! g6 x. J9 I
int servernum = getlabelnum(current,"servernum");
U3 A/ q) a* w2 Q/ i! |
% Y0 V, s% m" W) o @- r" t3 ~$ B! f' B
serversend(servernum,buffer);
! G9 ?$ ]4 p) [* s& U
setlabelstr(current,"send","");
' I- B. T. ]/ u" ?8 V2 w {" F
% O' r9 g* O5 z
pt("serversend()成功!");pr();
0 W8 J. D& H' X7 F" A' M
}
* y) I' {3 V( v& X
}
复制代码
作者:
ldl89772962
时间:
2016-10-11 14:09
求教
作者:
慧娴亚伦
时间:
2016-10-11 18:52
您的目标是什么呢?这个是FlexSim的模型之间用socket链接的功能。
5 \4 {; L; n9 g5 K; e% Z
连接不上的话有什么报错么?
作者:
ldl89772962
时间:
2016-10-11 20:43
3#
慧娴亚伦
! S8 Q' o: s1 }' n0 r
陈老师,您好
6 C, l D' \+ D' C% [: O! D
/ v& @5 k9 o# _$ ?" k$ x* l$ o7 a4 J* d# i
再将startserver标签设为1后,output console提示启动成功,可是tcp调试工具却无法连接FLEXSIM,好困扰!
6 F+ w1 I2 {' r$ d9 c2 H2 d
3 I& x3 D: {' x2 E$ d; P7 S% u
我将文件重新修改了一下,如附件。
作者:
ldl89772962
时间:
2016-10-11 20:49
模型目标是能够利用flexsim建立服务器,并能通过tcp工具与外部通信
作者:
慧娴亚伦
时间:
2016-10-12 09:38
您能上传或者介绍一下您使用的tcp调试工具么?另外请尝试使用高版本软件,最好使用最新的2016版本。
作者:
ldl89772962
时间:
2016-10-12 11:20
6#
慧娴亚伦
- I) J4 C% \$ y1 F
( D# E3 b7 B! \ p3 D
老师,楼上附件里有调试工具,另外我找到原因了:在启动服务器时要将socket初始化。
作者:
ldl89772962
时间:
2016-10-12 11:24
附件为经测试成功的文件
作者:
ldl89772962
时间:
2017-3-26 01:28
lllflflf
作者:
我很强壮
时间:
2017-6-13 01:49
谢谢分享
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3