我正在写一种手机和电脑之间的聊天应用程序。为了从手机接收,我设置了一个套接字并将其outputStream
放入 aDataOutputStream
中,从 a 轮询字符串LinkedBlokingQueue
并使用writeUTF()
. 但由于某种原因,我在执行dataOutputStream.writeUTF(input)
.
这是代码:
public class txThread extends Thread{
private LinkedBlockingQueue activityQueue;
private Socket socket;
private String input;
public txThread(LinkedBlockingQueue activityQueue){
this.activityQueue = activityQueue;
socket = null;
input = null;
}
public void run(){
DataOutputStream dataOutputStream = null;
try {
socket = new Socket("192.168.1.8",1755);
Log.d("DEBUG","THREAD_TX_CONNECTED");
dataOutputStream = new DataOutputStream(socket.getOutputStream());
while(true){
input = (String) activityQueue.poll();
dataOutputStream.writeUTF(input);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally{
if (socket != null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (dataOutputStream != null){
try {
dataOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return;
}
}