20.11.2016 Views

Android App Development ฉบับสมบูรณ์

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

-- ServerThread create when client connect.<br />

public class ServerThread extends Thread {<br />

private ServerTCP server = null;<br />

private Socket socket = null;<br />

private int ID = -1;<br />

private DataInputStream streamIn = null;<br />

private DataOutputStream streamOut = null;<br />

private boolean fstop = false;<br />

public ServerThread(ServerTCP _server, Socket _socket) {<br />

super();<br />

if (_server == null) {<br />

Log.e(TAG, "_server = null");<br />

}<br />

server = _server;<br />

socket = _socket;<br />

ID = socket.getPort();<br />

}<br />

public void tstop() {<br />

fstop = true;<br />

}<br />

public void send(String msg) {<br />

try {<br />

streamOut.writeUTF(msg);<br />

streamOut.flush();<br />

} catch (IOException ioe) {<br />

Log.e(TAG, ID + " ERROR sending: " + ioe.getMessage());<br />

server.remove(ID);<br />

stop();<br />

}<br />

}<br />

public int getID() {<br />

return ID;<br />

}<br />

ส่งข้อความไปยัง Client<br />

public void run() {<br />

Log.d(TAG, "Server Thread " + ID + " running.");<br />

while (!fstop) {<br />

try {<br />

server.handle(ID, streamIn.readUTF());<br />

} catch (IOException ioe) {<br />

Log.e(TAG, ID + " ERROR reading: " + ioe.getMessage());<br />

server.remove(ID);<br />

tstop();<br />

}<br />

}<br />

}<br />

public void open() throws IOException {<br />

streamIn = new DataInputStream(new BufferedInputStream(<br />

socket.getInputStream()));<br />

streamOut = new DataOutputStream(new BufferedOutputStream(<br />

socket.getOutputStream()));<br />

}<br />

บทที ่ 10 การพัฒนาแอพพลิเคชันติดต่อบนเครือข่ายอย่างง่าย 205

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!