Android开发学习——Day18(网络编程&实战:模拟聊天器)

学习目的

初步了解网络编程的概念和简单使用

学习过程

大致阅读了一下关于网络编程的知识,进而以实战来反复练习所掌握的具体编程内容。

技术

1.基础知识:

1)网络编程:在两台不同的计算机之间传递数据

举例:qq聊天、新闻app(刷新界面就有数据)打开浏览器(网页 www.baidu.com)

2)客户端与服务器端

1>客户端:手机app、浏览器、qq   --->(操作数据平台)

2>服务器端:存储/处理数据 --->(数据集散平台)

3)谈谈URL:url(URL)地址:统一的资源定位

用一个例子来说明:http://www.baidu.com/search?code=android&type=1

-》http/https:传输协议 Tcp/IP

-》www.baidu.com:域名->表示一台网络中的电脑

-》ipv4 ipv6 地址:唯一标识一台网络中的计算机

-》32位:四个部分每个是八个字节  10.129.26.215

-》DNS服务器:域名解析 将www.baidu.com类型的域名解析为对应的ip地址

-》search 对应的后台程序文件 用 php java jsp 来进行后台开发

-》“?”表示运行这个程序需要传递的参数

-》code = android code是服务器端规定的字段

-》“&” 如果有多个参数使用&符号链接

4)电脑,你的名字!

1>ip地址:唯一标识某一台电脑

2>端口号:唯一标识这台电脑上的某一个程序(进程)

5)数传输协议:TCP/IP协议

1>TCP:面向链接的 安全的

2>UDP:面向无连接的 不安全 但是快

实现网络中的数据传输:Socket实现 -> 套接字

-》Socket:客户端

-》ServerSocket:服务器端

2.实战:模拟聊天器

我们先看看效果:


实现效果--客户端界面(输入)


实现效果--服务器界面(接收)


实现效果--服务器界面(输入)


实现效果--客户端界面(接收)

这个程序模拟的是客户端和服务器之间的简单“聊天”,首先从客户端终端键入“服务器,你好哇!我是客户端!”,服务器接收到,并在服务器终端打印出来;服务器端键入数据,客户端接收也是如此过程。

具体代码如下:


代码实现--服务器端

服务器端的代码,首先创建socket套接字,与客户端相连;然后在主线程中实现“通过终端向客户端写入数据”功能;在子线程中实现“从客户端读入数据”功能。


代码实现--客户端

客户端代码的实现类似于服务器端,不过上图代码箭头所示是向服务器写入数据中的输出流,这和服务器端中的实现不同(其实也可以相同)。我发现如此用,在写出数据时就得像上图圈中所示,三句并用才能实现功能了,仅作提醒。因为这两者区别在于:在BufferedWriter中,write()要输出换行标识,要调用flush()刷新缓冲区;而PrintStream直接调用输出方法即可。

感悟

经过对网络编程的简单学习,我觉得其实以前觉得复杂的通信交互也就这么回事,远没有想象中的那么深奥晦涩。而且上手轻松,思路清晰,趣味无穷。直至今天的实战项目完成后,我觉得前面若干天的学习都是值得的,有意思的东西来了。”编程,以指尖改变世界!“——作者按。

你可能感兴趣的:(Android开发学习——Day18(网络编程&实战:模拟聊天器))