繁体   English   中英

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

[英]Java.net.SocketException: Permission denied: connect

我要连接一个网络中的两台PC。 其中一个应通过TCP向另一个发送通知。 我有一台PC上有一个“服务器”(Python脚本)套接字,它等待“客户端”(Jar文件)发送特定的String,然后向我发出通知。 当我在一台PC上进行尝试时,这工作得很好。 但是,当我想要执行预期的操作时,“客户端” PC的.jar给我一个错误,该错误是连接被拒绝。 我是否必须在另一台PC上打开特定端口,否则还会引起麻烦? 一台PC运行Fedora,另一台运行Windows 8

“服务器代码”

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()

“客户”代码

public static void main(String[] args) throws Exception {
Socket socket = new Socket("192.168.178.25", 5005); 
OutputStream out = socket.getOutputStream();
String dat = "$";
    out.write(dat.getBytes());
socket.close();
}

如果其权限被拒绝,则说明某些原因阻止了您与计算机的连接。 我会尝试打开一个端口,看看是否可行。 如果您想要一个Java套接字的示例,可以看看我的SUPER Tic-Tac-Toe Multiplayer,它使用Java套接字将字符串发送给客户端,以表示客户端应采取的操作。

您的服务器可能绑定了错误的接口,

呼唤

s.bind(("", 5005)) 

如果不设置接口,程序将可以选择要连接的IP地址/接口。

由于您的客户端正在尝试连接("192.168.178.25", 5005); 您可能需要将IP地址放入绑定调用中,以防止服务器选择错误的ip接口。

例:

s.bind(("192.168.178.25", 5005)) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM