sofsm.c

来自「linux网络编程实例程序 socket程序 适合初学者。」· C语言 代码 · 共 45 行

C
45
字号
/* sofsm.c */#include <sys/types.h>#include <stdio.h>#include "telnet.h"#include "tnfsm.h"/* Special chars: */char	t_flushc, t_intrc, t_quitc, sg_erase, sg_kill;extern int	soputc(FILE *,FILE *,int), scrinit(FILE *,FILE *,int),		scrgetc(FILE *,FILE *,int), scrwrap(FILE *,FILE *,int),		unscript(FILE *,FILE *,int), dcon(FILE *,FILE *,int),		suspend(FILE *,FILE *,int), status(FILE *,FILE *,int),		sonotsup(FILE *,FILE *,int), no_op(FILE *, FILE *, int),		tnabort(FILE *,FILE *,int);struct fsm_trans sostab[] = {        /* State        Input           Next State      Action  */        /* ------       ------          -----------     ------- *//* Data Input */	{ KSREMOTE,	KCESCAPE,	KSLOCAL,	no_op		},	{ KSREMOTE,	KCANY,		KSREMOTE,	soputc		},/* Local Escape Commands */	{ KSLOCAL,	KCSCRIPT,	KSCOLLECT,	scrinit		},	{ KSLOCAL,	KCUNSCRIPT,	KSREMOTE,	unscript	},	{ KSLOCAL,	KCESCAPE,	KSREMOTE,	soputc		},	{ KSLOCAL,	KCDCON,		KSREMOTE,	dcon		},	{ KSLOCAL,	KCSUSP,		KSREMOTE,	suspend		},	{ KSLOCAL,	KCSTATUS,	KSREMOTE,	status		},	{ KSLOCAL,	KCANY,		KSREMOTE,	sonotsup	},/* Script Filename Gathering */	{ KSCOLLECT,	KCNL,		KSREMOTE,	scrwrap		},	{ KSCOLLECT,	KCANY,		KSCOLLECT,	scrgetc		},	{ FSINVALID,	KCANY,		FSINVALID,	tnabort		},};#define	NTRANS	(sizeof(sostab)/sizeof(sostab[0]))int	sostate;u_char	sofsm[NKSTATES][NCHRS];

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?