我尝试在我的 Android 应用程序中使用 Sockets,但遇到了一个小问题。我使用 python 创建服务器,一切正常。服务器收到来自Android客户端的消息,但似乎无法在客户端上获得响应。这是我的服务器端:import socketHOST = '10.10.0.153'PORT = 7800s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)print('socket created')try: s.bind((HOST, PORT))except socket.error as err: print('binding faild')s.listen(10)while 1: conn, addr = s.accept() print('Connect with ' + addr[0] + ':' + str(addr[1])) buf = conn.recv(1024) print(buf) data = "hello" conn.send(data.encode('utf-8'))s.close()这是客户端:public class Sender extends AsyncTask<String, Void, Void> { private final String TAG = "Sender"; Socket s; PrintWriter pw; @Override protected Void doInBackground(String... strings) { String message = strings[0]; try { s = new Socket(GlobalVars.SERVER, GlobalVars.PORT); pw = new PrintWriter(s.getOutputStream()); pw.write(message); pw.flush(); BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream())); String msg = in.readLine(); System.out.println(msg); pw.close(); s.close(); } catch(IOException e) { e.printStackTrace(); }}
3 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
尝试pw.close();从您的代码中删除。也尝试删除这个:
if(!s.isClosed()) {
try {
s.close();
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "IOException 2");
}
}
添加回答
举报
0/150
提交
取消