def _before_send(self): super(TcpSender, self)._before_send() self._data = self._get_data() if not self.args.reconnect: addr = (self.args.destip, self.args.destport) self._sock = TcpSocket() self._sock.connect(addr)
def _send(self): if self.args.reconnect: addr = (self.args.destip, self.args.destport) self._sock = TcpSocket() self._sock.connect(addr) self._sock.send(self._data) if self.args.reconnect: self._sock.close()
def run(self): sock = TcpSocket() sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind((self._args.ip, self._args.port)) sock.listen(10) sockets = [sock,] while True: infds, outfds, errfds = select.select(sockets, [], []) for fd in infds: if fd == sock: client, client_addr = sock.accept() sockets.append(client) if not self._args.quiet: print(_("accept connection from {0}".format(client_addr))) else: buffer = fd.recv(1024) if len(buffer) != 0: if not self._args.quiet: print(fd.getpeername(),buffer) else: client_addr = fd.getpeername() fd.close() if not self._args.quiet: print(_("close connection from {0}".format(client_addr))) sockets.remove(fd)
class TcpSender(MultiSender): def _setup_args(self, parser, need_data=True): super(TcpSender, self)._setup_args(parser) parser.add_argument('destip', type=str, help=_("Specifies the dest ip send to")) parser.add_argument('destport', type=int, help=_("Specifies the dest port send to")) if need_data: parser.add_argument('--data', type=str, help=_("Specifies the data to be sent")) parser.add_argument('--reconnect', action='store_true', help=_("reconnect dest server for each message")) def _after_setup_args(self): if 'data' in self.args and not self.args.data and self.args.processes: raise NettestError( _("must specifies --data option when use multiprocess")) def _before_send(self): super(TcpSender, self)._before_send() self._data = self._get_data() if not self.args.reconnect: addr = (self.args.destip, self.args.destport) self._sock = TcpSocket() self._sock.connect(addr) def _send(self): if self.args.reconnect: addr = (self.args.destip, self.args.destport) self._sock = TcpSocket() self._sock.connect(addr) self._sock.send(self._data) if self.args.reconnect: self._sock.close() def _after_send(self): super(TcpSender, self)._after_send() if not self.args.reconnect: self._sock.close() def _get_data(self): if self.args.data: return self.args.data.encode() else: return sys.stdin.read(65535).encode()
class TcpSender(MultiSender): def _setup_args(self, parser, need_data=True): super(TcpSender, self)._setup_args(parser) parser.add_argument("destip", type=str, help=_("Specifies the dest ip send to")) parser.add_argument("destport", type=int, help=_("Specifies the dest port send to")) if need_data: parser.add_argument("--data", type=str, help=_("Specifies the data to be sent")) parser.add_argument("--reconnect", action="store_true", help=_("reconnect dest server for each message")) def _after_setup_args(self): if "data" in self.args and not self.args.data and self.args.processes: raise NettestError(_("must specifies --data option when use multiprocess")) def _before_send(self): super(TcpSender, self)._before_send() self._data = self._get_data() if not self.args.reconnect: addr = (self.args.destip, self.args.destport) self._sock = TcpSocket() self._sock.connect(addr) def _send(self): if self.args.reconnect: addr = (self.args.destip, self.args.destport) self._sock = TcpSocket() self._sock.connect(addr) self._sock.send(self._data) if self.args.reconnect: self._sock.close() def _after_send(self): super(TcpSender, self)._after_send() if not self.args.reconnect: self._sock.close() def _get_data(self): if self.args.data: return self.args.data.encode() else: return sys.stdin.read(65535).encode()