Java.net.SocketException:权限被拒绝:连接

时间:2013-11-01 00:06:01

标签: java python sockets

我想在一个网络中连接两台PC。其中一个应该通过TCP向另一个发送通知。一台PC我有一个“服务器”(Python脚本)套接字等待“客户端”(Jar文件)发送一个特定的字符串,然后它给我一个通知。当我尝试一台PC时,这完全正常。但是,当我想要执行预期的操作时,“客户端”PC的.jar给出了一个错误,即连接被拒绝。我是否必须打开另一台PC上的特定端口或者还有什么可能导致问题?一台PC在另一台Windows 8上运行Fedora

“服务器代码”

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您的服务器可能绑定到错误的界面,

调用

s.bind(("", 5005)) 

如果没有设置接口,程序将选择它将连接的IP地址/接口。

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

示例:

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