120 likes | 243 Views
Demo es2012. Nhóm 15 – Android Instant Messenger on WLAN & Broadcast IP address. Broadcast IP address. Là địa chỉ IP có thể gửi gói tin datagram vào mà tất cả các host trong mạng đó đều nhận được. IP networking. IPv4: Broadcast address IPv6: được thay thế bởi IP multicast. Definition.
E N D
Demo es2012 Nhóm 15 – Android Instant Messenger on WLAN & Broadcast IP address
Broadcast IP address • Là địa chỉ IP có thể gửi gói tin datagram vào mà tất cả các host trong mạng đó đều nhận được.
IP networking • IPv4: Broadcast address • IPv6: được thay thế bởi IP multicast
Definition • Cách xác định thông qua một địa chỉ IP và subnet mask của mạng đó: IP: 192.168.1.100/24 SM: 255.255.255.0 2^8 – 2 = 256 – 2 = 254 (số host tối đa) 2 địa chỉ được lưu trữ là subnet và broadcast address SN: 192.168.1.0 BA: 192.168.1.255
Definition IP: 192.168.1.100/24 SM: 255.255.255.0 IP: 11000000.10101000.00000001.11001000 SM: 11111111.11111111.11111111.00000000 Phép toán AND đối với 24 bit đầu tiên SN: 11000000.10101000.00000001.00000000 BA: 11000000.10101000.00000001.11111111
Java public InetAddress getBroadcast() throws SocketException { System.setProperty("java.net.preferIPv4Stack", "true"); for (Enumeration<NetworkInterface> niEnum = NetworkInterface .getNetworkInterfaces(); niEnum.hasMoreElements();) { NetworkInterface ni = niEnum.nextElement(); if (!ni.isLoopback()) { for (InterfaceAddress interfaceAddress : ni .getInterfaceAddresses()) { return interfaceAddress.getBroadcast(); } } } return null; }
Limited Broadcast Address • Địa chỉ đặc biệt: 255.255.255.255 • Bị giới hạn gói tin không được forward từ local network này sang network khác.
Usages • Broadcast Address được sử dụng trong một số application protocol như ARP, DHCP
Project • Do mô hình peer-peer nên các máy cần vừa là server và client • Cần một cơ chế nhận diện sự có mặt các máy trong mạng: sử dụng Udp Broadcast để gửi gói tin vào địa chỉ broadcast
IM WLAN startService(username) handle Bind refresh Get unread msg & handle Bind send message Broadcast userlist Broadcast message Notification(name,ip) Intent(name,ip) Intent start UDP server Broadcast ip + chat TCP server Chatting • Welcome activity • -------------------------------------------------- • + EditText: editName • -------------------------------------------------- • editName.onKey(Enter) • startService(username) • intent (UserList activity, username) finish() • (*) save usename • checkName():trim, remove ‘/’ cancle IMService • UserList activity • ------------------------------------------------------------------------------ • + ListView/Adapter: online user list (user - ip) • + (*) OptionMenu: refresh, change name, project info , exit • ------------------------------------------------------------------------------ • broadcast receiver: • action UPDATE_LIST • get data intent “username”-“ip” • onPause(): unbind service, unregisterreceiver… • onResume(): bind service, registerreceiver, refresh • onServiceConnected(): broadcast refresh • (*) onMenuClick() • refresh, change name, project info , exit = stopService • onItemListClick(): intent(Chat actitivity, user + ip) • Chat activity • ------------------------------------------------------------------------------------------------ • + TextView: textview html message list (user - message) • + EditText: editMessage • ------------------------------------------------------------------------------------------------- broadcast receiver: • action GET_NEW_MESSAGE • filter current user ip • get data intent “IP”-”message” • (*) onPause(): save last n messages, unbind service,unregistryreceiver… • (*) onResume(): show last n messages AND last received messages, get unread messages, bind service, registerreceiver… • editMessage.onKey(Enter): send meassage Thiết kế một chương trình chat đơn giản trong Android
Androidx86 Máy ảo android http://www.android-x86.org/ Download các phiên bản *eeepc.iso để cài trên Vmware hoặc VirtualBox Connect đến máy ảo để lập trình với eclipse bằng câu lệnh: adb connect ip