我正在我的计算机上运行一个python服务器,并在我的手机上运行java套接字客户端。 java尝试连接的那一刻,应用程序冻结了。在logcat中没有说什么。我不知道为什么......
python 3.5.1:
PORT = 8888
import socket
sock = socket.socket()
sock.bind(("0.0.0.0", PORT))
sock.listen(1)
client = None
while not client:
try:
client = sock.accept()
except:
pass
print(client[1])
的java:
static String get_leaderboard() {
Socket sock;
OutputStream out;
InputStream in;
try {
System.out.println("now trying to connect");
sock = new Socket("192.168.1.29", 8888);
System.out.println("connected successfuly");
out = sock.getOutputStream();
in = sock.getInputStream();
return Integer.toString(in.read());
} catch (IOException e) {
e.printStackTrace();
}
return "Error in connection";
但实际上,logcat从不打印“连接成功”。只是“试图连接”。
答案 0 :(得分:0)
这一行错了:
client = sock.connect()
服务器不会调用connect()
。服务器呼叫listen()
和accept()
。只有客户致电connect()
。
由于您的服务器呼叫bind()
和listen()
,而不是accept()
,因此任何客户端都会挂起并尝试连接到它。
资源: