![](/img/trans.png)
[英](java.net.SocketException) java.net.SocketException: Permission denied: 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.