public void Resize(int width, int height) { if (!_parent.IsClosed) { TelnetOptionWriter wr = new TelnetOptionWriter(); wr.WriteTerminalSize(width, height); wr.WriteTo(_socket); } }
private void ProcessOptionRequest(byte option_) { TelnetOption option = (TelnetOption)option_; switch (option) { case TelnetOption.TerminalType: if (_state == TelnetCode.DO) { _optionWriter.Write(TelnetCode.WILL, option); } else { _warnings.Add("Message.Telnet.FailedToSendTerminalType"); } break; case TelnetOption.NAWS: if (_state == TelnetCode.DO) { _optionWriter.WriteTerminalSize(_width, _height); } else { _warnings.Add("Message.Telnet.FailedToSendWidnowSize"); } break; case TelnetOption.SuppressGoAhead: if (_state != TelnetCode.WILL && _state != TelnetCode.DO) //!!—¼•û‚ª—ˆ‚½‚±‚Æ‚ðŠm”F‚·‚é { _warnings.Add("Message.Telnet.FailedToSendSuppressGoAhead"); } break; case TelnetOption.LocalEcho: if (_state == TelnetCode.DO) { _optionWriter.Write(TelnetCode.WILL, option); } break; default: //ã‹LˆÈŠO‚Í‚·‚ׂċ‘”ÛBDO‚É‚ÍWON'T, WILL‚É‚ÍDON'T‚̉ž“š‚ð•Ô‚·B if (_state == TelnetCode.DO) { _optionWriter.Write(TelnetCode.WONT, option); } else if (_state == TelnetCode.WILL) { _optionWriter.Write(TelnetCode.DONT, option); } break; } }