【发布时间】:2015-05-12 06:13:29
【问题描述】:
我是这个论坛的新手。我在 Android 中用线程制作了一个 TCP 客户端。此代码适用于我的应用:
class TCPClient extends Thread
{
String add;
public TCPClient(String IPa)
{
add=IPa;
}
public void run()
{
try
{
InetAddress serverAddr = InetAddress.getByName(add);
socket = new Socket(serverAddr, SERVERPORT);
//write part: i write to server
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.print("INIT");
out.flush();
//read part: I receive a message from server
byte[] bytes = new byte[1000];
StringBuilder x = new StringBuilder();
int numRead = 0;
if ((numRead = socket.getInputStream().read(bytes)) >= 0)
{
x.append(new String(bytes, 0, numRead));
}
if(x.toString().equals("INIT_ACK"))
//position_req();
getActivity().runOnUiThread(new Runnable() {
public void run()
{
Toast.makeText(getActivity().getApplicationContext(),"Connesso",Toast.LENGTH_LONG).show();
}
});
}
catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
但是我有这个问题:服务器可能会在 70 秒后回复,所以我需要放置一个等待控件并监听服务器是否给我发送了回复。 我该怎么做? 谢谢你的回答。
【问题讨论】:
标签: android multithreading sockets tcp client