![](/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.