我想在一个网络中连接两台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();
}
答案 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))