class_docstr: Communicates with a single kernel on any host via zmq channels.
  
  There are four channels associated with each kernel:
  
  * shell: for request/reply calls to the kernel.
  * iopub: for the kernel to publish results to frontends.
  * hb: for monitoring the kernel's heartbeat.
  * stdin: for frontends to reply to raw_input calls in the kernel.
  
  The messages that can be sent on these channels are exposed as methods of the
  client (KernelClient.execute, complete, history, etc.). These methods only
  send the message, they don't wait for a reply. To get results, use e.g.
  :meth:`get_shell_msg` to fetch messages from the shell channel.
class_docstr_tok: ["Communicates","with","a","single","kernel","on","any","host","via","zmq","channels",".","There","are","four","channels","associated","with","each","kernel",":","*","shell",":","for","request\/reply","calls","to","the","kernel",".","*","iopub",":","for","the","kernel","to","publish","results","to","frontends",".","*","hb",":","for","monitoring","the","kernel","'s","heartbeat",".","*","stdin",":","for","frontends","to","reply","to","raw_input","calls","in","the","kernel",".","The","messages","that","can","be","sent","on","these","channels","are","exposed","as","methods","of","the","client","(","KernelClient.execute",",","complete",",","history",",","etc.",")",".","These","methods","only","send","the","message",",","they","do","n't","wait","for","a","reply",".","To","get","results",",","use","e.g",".",":","meth",":","`","get_shell_msg","`","to","fetch","messages","from","the","shell","channel","."]
docstr: Get the stdin channel object for this kernel.
docstr_tok: ["Get","the","stdin","channel","object","for","this","kernel","."]
code: def stdin_channel(self):
      """Get the stdin channel object for this kernel."""
      if self._stdin_channel is None:
          url = self._make_url("stdin")
          self.log.debug("connecting stdin channel to %s", url)
          socket = self.connect_stdin(identity=self.session.bsession)
          self._stdin_channel = self.stdin_channel_class(
              socket, self.session, self.ioloop
          )
      return self._stdin_channel
  
imports: from __future__ import absolute_import
  from jupyter_client.channels import major_protocol_version
  from ipython_genutils.py3compat import string_types, iteritems
  import zmq
  from traitlets import Any, Instance, Type
  from .channelsabc import ChannelABC, HBChannelABC
  from .clientabc import KernelClientABC
  from .connect import ConnectionFileMixin
label_desc: Use image node_id 10 for calling the KernelClient obj's underlying member method code with example usage: obj.stdin_channel() and returns: self