网络编程:
网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。
简单理解为在两台不同的计算机之间传递数据
客户端:给用户看 用于客户访问
服务器端:存储/处理数据的地方
---------------------------------------------------------------------
URL处理:
一、协议为(protocol):http
二、主机为(host:port):www.runoob.com
三、端口号为(port):80 ,以上URL实例并未指定端口,因为 HTTP 协议默认的端口号为 80。
四、文件路径为(path):/index.html
五、请求参数(query):language=cn
六、定位位置(fragment):j2se,定位到网页中 id 属性为 j2se 的 HTML 元素位置 。
如:http://www.baidu.com/search?code=android&type=1
1、http/https:传输协议 Tcp/IP
2、www.baidu.com:域名 表示一台网络中的电脑
ipv4 ipv6 ip地址:唯一标识一台网络中的计算机
3、32位:4个部分每个部分占8个字节
170.20.10.15<->www.baidu.com
4、DNS服务器:域名解析
将www.baidu.com类型的域名解析为对应的ip地址
5、search 对应的后台程序文件 php java jsp
6、?表示运行这个程序需要传递的参数
code=android code是服务器规定的字符
& 如果有多个参数用&符号链接
----------------------------------------------------------------------------
数据传输:
TCP/Ip协议:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP
UDP协议:UDP 是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。
TCP:面向链接的 安全的
UDP:面向无连接的 不安全 但快
----------------------------------------------------------------------------------
网络中的数据传输:Socket实现->套接字
Socket类:客户端
ServerSocket:服务器端
——————————————————————————————
实现客户端与服务器端的通信
注意:在向服务器端输出数据后,记得关闭socket,不然服务器后一直等待用户端输入。
———————————————————————————————————————
实现从客户端手动输入数据,并在服务器端显示
注意:这里(println)打印时一定要换行,否则将出现错误。
________________________________________________________
群聊的实现:
关键:1、运用多线程分别进行客户端和服务器端的数据输入和输出。
2、用数组保存客户端的每个对象,实现群聊只用遍历数组即可。
子线程的实现:
在服务器端定义数组保存客户对象:
总结:网络编程的知识点有点繁杂,但是其中的很多地方都是重复运用的,多用几次后就感觉熟悉多了。