1、网络编程:在两台不同的计算机之间传递数据
(1)QQ聊天
(2)打开网易,刷新界面,就有数据(从服务器端获取数据并显示)
(3)打开浏览器,网页 www.baidu.com
2、客户端:手机app 浏览器 桌面QQ(给用户用的东西)
服务器端:处理/存储数据
3、URL:统一定位资源(网址)
http://www.baidu.com/search?code=android
http/https:传输协议 Tcp/IP协议共同实现
www.baidu.com:域名 表示一台网络中的电脑
每台电脑都有ip地址,用来唯一标识一台网络中的计算机
共有两种:ipv4/ipv6
32位分为四个部分,每个部分8个字节
IP地址<---->域名(172.20.10.15<---->www.baidu.com)
DNS服务器:域名解析器:将域名解析成相应的IP地址
search:对应的后台程序文件 后台有文件对应(php java jsp)
?表示运行这个程序需要传递的参数
code=android code是服务器规定的字段
如果有多个参数使用&链接起来
4、端口号:用来唯一标识这台电脑上的某一个程序(链接在IP地址后面,用点隔开)
IP地址: 唯一标识某一台电脑
5、数据传输:TCP/IP协议
TCP:面向连接的,安全(打电话)
UDP:面向无连接的,不安全,但快(飞鸽传书)
6、网络中的数据传输:Socket实现-->套接字
Socket: 客户端
ServerSocket:服务器端
7、读取数据:服务器读取 客户端读取
BufferedReader-->InputStreamReader-->socket,getInputStreamReader
读取终端
BufferedReader-->InputStreamReader-->System.in
输出:客户端输出 服务器端输出
BufferedWriter-->
8、手动输入内容、发送
socket扮演的是客户端
ServerSocket扮演的是服务器端
客户端 :(1)文本 (2)图片 (3)视频 (4)音频
9、客户端和服务器端都可以随意发送内容
从终端输入
(对聊)
客户端:
主线程:接收终端输入 将终端输入发送给服务器端
子线程:接收服务器端发过来的数据
服务器端:
主线程:接收终端输入 将终端输入发送给客户端
子线程:接收客户端发来的数据
10、如何实现群聊
在服务器端维护一个数组(socket)
网友评论