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.

public boolean sflag = false;<br />

public ClientThread(ClientTCP _client, Socket _socket) {<br />

client = _client;<br />

socket = _socket;<br />

open();<br />

start();<br />

}<br />

public void open() {<br />

try {<br />

streamIn = new DataInputStream(socket.getInputStream());<br />

} catch (IOException ioe) {<br />

Log.i(TAG, "Error getting input stream: " + ioe);<br />

client.close();<br />

}<br />

}<br />

public void close() {<br />

try {<br />

if (streamIn != null)<br />

streamIn.close();<br />

} catch (IOException ioe) {<br />

Log.d(TAG, "Error closing input stream: " + ioe);<br />

}<br />

}<br />

}<br />

}<br />

public void run() {<br />

while (!sflag) {<br />

try {<br />

client.handle(streamIn.readUTF());<br />

} catch (IOException ioe) {<br />

Log.d(TAG, "Listening error: " + ioe.getMessage());<br />

client.close();<br />

sflag = true;<br />

}<br />

}<br />

}<br />

การทำงานของไคลเอนท์จะมีลักษณะคล้ายกับเซิร์ฟเวอร์ โดยไคลเอนท์จะเชื่อมต่อไปยังเซิร์ฟเวอร์<br />

ด้วยการกำหนดไอพี (IP) และพอร์ต (Port) ที่ต้องการเชื่อมต่อ เมื่อเชื่อมต่อสำเร็จจะมีการแยกเทรดออกมาเพื่อ<br />

รอรับข้อมูลที่ส่งมาจากเซิร์ฟเวอร์ และแสดงข้อมูลที่ได้รับบนหน้าจอ<br />

2. เขียนโค้ดเพิ่มในเมธอด startServer() ของคลาส BasicNetworkTCPActivity ดังนี้<br />

public void startServer() {<br />

//start server code<br />

tcpServer = new ServerTCP(this, run_server_port);<br />

mode = SERVER_MODE;<br />

textMode.setText("Server Mode");<br />

}<br />

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

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

Saved successfully!

Ooh no, something went wrong!