JAVA网络编程
2021/4/17 22:28:36
本文主要是介绍JAVA网络编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.1概述
TCP:打电话 连接、通话
UDP:发短信 发完就完事了 接收
-
如何定位一个网络上的一台主机:ip地址:端口 定位到这个计算机上的某个资源
-
硬件连接 有线、无线
网页编程 javaweb B/S
网络编程 TCP/IP C/S
1.2网络通信的要素
如何实现网络的通信?
- 如何如何定位网络上的一台或多台主机
- 找到主机如何通信
通信双方地址:
- ip
- 端口号
规则:网络通信的协议 TCP、UDP
1.3 IP
ip地址:InetAddress
-
127.0.0.1 本机localhost
-
ip地址分类
-
ipv4/ipv6
-
ipv4 :127.0.0.1 4个字节组成 42亿 亚洲4亿
-
ipv6 8个无符号整数 128位
1238:abcd:9291:cccc:2819:abcd:7478:bdec
-
-
公网-互联网 私网-局域网
- ABCD类地址
- 192.168.xx.xx专门给组织内部使用
-
InetAddress inetAddress1 = InetAddress.getByName("www.baidu.com"); //getHostName获取域名 //getHostAddress获取ip
1.4端口
端口表示计算机中一个程序的进程
-
不同的进程有不同的端口号,用来区分软件
-
规定为0~65536
-
TCP ,UDP 单个协议下端口号不能相同
-
端口分类
-
公有端口0~1023
- HTTP:80
- HTTPS:443
- FTP:21
- Telent:23
-
程序注册端口
- Tomcat:8080
- Mysql: 3306
- Oracle:1521
-
动态、私有端口:49152~65535
netstat -ano netstat -ano |findstr "5900" 查找进程
-
1.5通信协议
TCP/IP协议 传输层
- TCP:用户传输协议
- 连接 稳定
- 三次握手 四次挥手
- 客户端、服务端
- 传输完成 释放连接 效率低
- UDP:用户数据报协议
- 不连接 不稳定
- 客户端、服务端 :没有明确的界定
- 不管有没有准备好,都可以发给你
1.6TCP
//客户端 public class C{ psvm{ //获取ip地址 端口号 InetAddress c = InetAddress.getByName("127.0.0.1"); int port=9999; //创建socket连接 Socket socket = new Socket(c,port); //发送消息 OutputStream os = socket.getOutStream(); os.write("你好hahaha".getButes()); //关闭资源 io流 scoket资源 } } //服务端 public class S{ psvm{ try{ //1.创建地址 ServerSocket s = new ServerSocket("9999"); //2.等待连接 Socket socket = serverSocket.accept(); //3.获取服务端消息 InputStream is =socket.getInputStream(); //管道流 ByteArratOutputStream baos = new ByteArratOutputStream(); byte[] = buffer = new byte[1024]; int len; while((len=is.read(buffer))!=-1){ baos.write(buffer,0,len); } System.out.println(baods.toString()); //关闭资源 先开的后关 }catch } }
上传文件
class C { psvm{ //创建一个连接 Socket socket = new Socket(InetAddresss.getByName("127.0.0.1"),9999); //获取输出流 OutputStream os = socket.getOutputStream(); //获取文件流 FileInputStream fis = new FileInputStream(new File("3/txt")); //写出文件 byte[] buffer = new byte[1024]; int len; while((len=fis.read(buffer))!=-1){ os.write(buffer,0,len); } //关闭资源 fis.close(); os.close(); socket.close(); } } class S{ psvm{ //创建服务 ServerSokcet serverSocket = new ServerSokcet(); //等待连接 阻塞式等待 会一直等待直到客户端连接 Socket socket = serverSocket.accept(); //获取输入流 InputStream is = socket.getInputStream(); //文件输出 FileOutputStream fos = new FileOutputStream(new File("recesive.txt")); byte[] buffer = new byte[1024]; int len; while((len=fos.read(buffer))!=-1){ fos.write(buffer,0,len); } //关闭资源 fos.close(); is.close(); socket.close(); serverSocket.close(); } }
待更新
这篇关于JAVA网络编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26手写消息中间件:从零开始的指南
- 2024-11-26Java语音识别项目资料:新手入门教程
- 2024-11-26JAVA语音识别项目资料:新手入门教程
- 2024-11-26Java语音识别项目资料:入门与实践指南
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料:新手入门教程
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解