Java.net.SocketException:权限被拒绝:conn

2024-07-05 15:07:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个网络中连接两台电脑。其中一个应该通过TCP向另一个发送通知。我有一个“服务器”(Python脚本)套接字,等待“客户机”(Jar文件)发送一个特定的字符串,然后它给我一个通知。当我在一台PC机上试用时,这个功能非常好。但是当我想执行预期的操作时,“客户机”PC机的.jar会给我一个错误,即连接被拒绝。我必须打开另一台电脑上的特定端口吗?否则会引起什么问题?一台电脑运行Fedora,另一台运行Windows8

“服务器代码”

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind(("", 5005)) 
s.listen(1)

try: 
    while True: 
        komm, addr = s.accept() 
        while True: 
            data = komm.recv(1024)
            if data == "$":
                noty()
            if not data: 
                komm.close() 
                break
finally: 
    s.close()

“客户”代码

^{pr2}$

Tags: 代码网络服务器脚本trueclosedata客户机
2条回答

你的服务器可能绑定到了错误的接口

呼叫

s.bind(("", 5005)) 

不设置接口将允许程序选择要连接到的ip地址/接口。在

由于您的客户机正试图连接到("192.168.178.25", 5005);,您可能需要在bind调用中输入一个IP地址,以防止服务器选择错误的IP接口。在

示例:

^{pr2}$

如果它的权限被拒绝,那么有东西阻止了你与计算机的连接。我会试着打开一个港口看看是否有效。如果您想要一个java套接字的例子,可以看看我的SUPER Tic-Tac-Toe Multiplayer,它使用java套接字向客户机发送字符串,作为表示客户机应该采取的操作的一种方式。在

相关问题 更多 >