本系列文章在 https://github.com/freestylefly/javaStudy 持(jing)续(chang)更(duan)新(geng)中,欢迎有兴趣的童鞋们关注。
1、查看本机的IP地址和网络相关概念
config查看本机的IP地址
ping命令测试网络是否通畅
网络是连接在一起共享数据和资源的计算机
按照覆盖范围可以分为:局域网、城域网、广域网
ping 127.0.0.1检查TCP/IP协议安装是否正确
2、基于TCP协议的网络编程
①建立连接
②打开socket关联的输入/输出流
③从流中读取信息
④关闭流和socket
注意点:
1、先写服务器,再写客户端
2、在客户端输出部分要加socket.shutdownOutput()(相当于告诉服务器我说的话说完了),若用字符流写,需要在socket.shutdownOutput()前面加上flash方法,清空缓存
3、本机localhost
4、端口号不低于1024
三、实例
1、客户端发送的请求为String字符串
1 | package demo1; |
1 | package demo1; |
2、客户端传出的是一个对象的情况
需要将对象序列化,注意要实现Serializable接口
1 | package demo2; |
1 | package demo2; |
1 | package demo2; |
3、利用多线程实现多个客户端发出请求情况
①创建服务器线程类,run()方法实现对一个请求的响应处理
②死循环让服务器一直处于监听状态
③服务器每监听一个线程,创建一个线程对象并启动
1 | package demo3; |
1 | package demo3; |
1 | package demo3; |
四、InetAddress类
位于java.net包中,常用于封装IP地址和DNS
静态方法
InetAddress.getByName(String hostName)
返回指定主机名的InetAddress对象
五、基于UDP协议的socket编程
四个步骤
1、DatagramPacket对象封装数据包
2、DatagramSocket发送数据包
3、DatagramSocket接收数据包
4、DatagramPacket处理数据包
TCP和UDP协议的异同
实现实例:
1 | package socket4; |
1 | package socket4; |