ทำไมต้องมี Server ?
- เนื่องจากโปรเจคนี้เราต้องการส่งค่าผ่านจาก Android ผ่านไปยัง Arduino จึงจำเป็นต้องมี Server เป็นตัวกลางในการรับเเละส่งข้อมูล
- เนื่องจาก Python เป็นภาษาที่ใช้งานง่ายเเละสามารถรันบน Raspberry Pi ได้เป็นอย่างดี
พอพูดถึง Server ก็จะมี Protocal ที่นิยมใช้อยู่ 2 ประเภท คือ TCP/IP หรือ UDP ในที่นี้จะเลือกการใช้งานเเบบ TCP/IP นะครับ สงสัยเพิ่มเติมหาข้อมูลที่ http://www.avrportal.com/forum/index.php?topic=79.0 ได้เลย เนื่องจาก python ได้มีการเเจก Code Server ไว้อยู่เเล้วที่ลิงค์ https://wiki.python.org/moin/TcpCommunication จึงได้นำมาศึกษาเเละปรับปรุงโดยที่จะใช้ Code ที่เป็น Code Server ดังต่อไปนี้
1 #!/usr/bin/env python
2
3 import socket
4
5
6 TCP_IP = '127.0.0.1' #Server IP Address
7 TCP_PORT = 5005 #Server Port
8 BUFFER_SIZE = 20 # Normally 1024, but we want fast response
9
10 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Open socket
11 s.bind((TCP_IP, TCP_PORT))
12 s.listen(1)
13
14 conn, addr = s.accept()
15 print 'Connection address:', addr
16 while 1:
17 data = conn.recv(BUFFER_SIZE)
18 if not data: break
19 print "received data:", data
20 conn.send(data) # echo
21 conn.close()
โดยที่ Code ตัวอย่างนี้จะทำงานคือรับค่าจาก Client เเละส่งค่ากลับไปเเสดงผลที่ Client
No comments:
Post a Comment