Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Can android be an http server


Published on

LT at Shibuya.apk #22
Introduction to how to make Android Device an HTTP server.

Demo app is available at my GitHub repository below.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Can android be an http server

  1. 1. Can Android be an HTTP Server? 2018.02.06 Tue. Tsuyoshi Chujo @ shibuya.apk # 22
  2. 2. About me Tsuyoshi Chujo ● Freelance engineer of Web services ○ Android, Web server (Servlet, Django, Ruby on Rails), etc. ● Currently, working as an Android developer in a manufacturer ● Social Accounts ○ Qiita: @chooyan-eng ○ GitHub: @chooyan-eng ○ @chooyan ○ Twitter: @chooyan_i18n ● CodeYourRuby the device powered by Android (but NOT a Smart Phone)
  3. 3. Can Android be an HTTP Server? Ordinal architecture Client Server request response
  4. 4. Can Android be an HTTP Server? What I would like to discuss today Client Server request response
  5. 5. YES! Android CAN be an HTTP Server! ● HTTP is based on TCP ● HTTP is a protocol of “How to Control TCP” ○ See OSI or TCP/IP in detail ● All the OS (as far as I know) can use TCP. It’s the function of OS. ● Android OS also can use TCP ● Thus, Android device can be a HTTP server by extending TCP and implementing the specification on RFC 7230.
  6. 6. How to implement? ● Use ○ Basic class to accept requests based on TCP/IP protocol ○ InputStream and OutputStream of this class presents TCP Socket. ○ See my GitHub repository if you are interested in usage.
  7. 7. Flow Image Client Server open socket connect accept GET / HTTP/1.1CRLFUser-Agent: XXXXCRLFCookie:... parse and calculate the end of data. do something... Then, send back response.receive data and parse send data HTTP/1.1 200 OKCRLFContent-Type: text/htmlCRLF... establish connection
  8. 8. Demo if app does not work… see below :-( Open the URL below with your favorite web browser :-) http://XXX.XXX.XXX.XXX:20000
  9. 9. When to Use? (in my experience) ● Embedded Android (Android on devices for specific operation) ○ Send data DIRECTLY from PC to Android devices via LAN. ○ Send data with TCP connection. (Not using HTTP, but basic idea is the same as discussion here) end data and control the device response
  10. 10. Thank you!