2013-11-01 147 views
0

我想在一个网络中连接两台PC。其中一人应通过TCP向其他人发送通知。一个PC我有一个“服务器”(Python脚本)套接字,它等待“客户端”(Jar文件)发送一个特定的字符串,然后它给了我一个通知。当我尝试使用一台PC时,这很好。但是当我想要执行预期的操作时,“客户端”PC .jar给我一个连接被拒绝的错误。我是否必须在另一台电脑上打开特定的端口,否则会导致麻烦?一台PC上运行Fedora的其他Windows 8Java.net.SocketException:权限被拒绝:连接

“服务器代码”

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

你需要给一些代码。很可能您的端口/ IP出错,或者您的接口绑定到了错误的接口,或者您的服务器没有收听。 – Serdalis

+0

我的错对不起我加入这两个应用程序的代码 – lup3x

+0

尝试把服务器IP分为绑定电话。也端口5005 [使用相当多的事物(http://www.speedguide.net/port.php?port=5005)(包括木马),也许选择一个空虚之一。 – Serdalis

回答

0

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

调用

s.bind(("", 5005)) 

没有设置接口将允许程序选择什么样的IP地址/接口将连接到。

由于您的客户端试图连接到("192.168.178.25", 5005);,你可以把它放到一个IP地址绑定调用,以防止服务器选择了错误的IP接口。

例子:

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

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

相关问题