首页 > 解决方案 > JMeter - 监听给定 IP 上的端口

问题描述

我想运行一个 jmeter 测试,它侦听给定 ip 上的端口,并打印发送到该端口的消息。我试过用这个:

SocketAddress inetSocketAddress = new InetSocketAddress(InetAddress.getByName("<client ipAddress>"),<port number>);
def server = new ServerSocket();
server.bind(inetSocketAddress);
while(true) {
    server.accept { socket ->
        log.info('Someone is connected')
        socket.withStreams { input, output ->
            def line = input.newReader().readLine()
            log.info('Received message: ' + line)
        }
        log.info("Connection processed")
    }
}

但这给了我错误-“无法分配请求的地址:JVM_Bind”

有没有其他方法可以解决这个问题?或者我需要为当前的工作方法做哪些改变?

标签: websocketjmeterbindjmeter-5.0

解决方案


您从正确的位置复制并粘贴了此代码,它应该可以正常工作。证据:

在此处输入图像描述

根据BindException 文档

表示尝试将套接字绑定到本地地址和端口时发生错误的信号。通常,端口正在使用中,或者无法分配请求的本地地址。

所以我可以想到2个选项:

  1. <client ipAddress>的不正确,无法解决。
  2. 上已经有东西在运行<port number>,你不能有 2 个应用程序监听同一个端口,第一个会成功,另一个会失败

更多信息:


推荐阅读