- 浏览: 187778 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. 网页内容获取
2. 套接字(Socket)实现TCP
3. 实现实时通信
4. 无连接的数据报UDP
Url1.java import java.net.URL; public class Url1{ public static void main(String[] args) throws Exception{ URL url = new URL("http://java.sun.com:80/docs/books/tutorial/index.html#DOWN"); String protocol = url.getProtocol(); String host = url.getHost(); String file = url.getFile(); int port = url.getPort(); String ref = url.getRef(); System.out.println(protocol + ", " + host + ", " + file + ", " + port + ", " + ref); } } 运行结果: http, java.sun.com, /docs/books/tutorial/index.html, 80, DOWN
将html内容保存成txt文件格式 UrlConnection1.java import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; public class UrlConnection1{ public static void main(String[] args) throws Exception{ URL url = new URL("http://www.infoq.com"); URLConnection conn = url.openConnection(); InputStream is = conn.getInputStream(); OutputStream os = new FileOutputStream("c:\\infoq.txt"); byte[] buffer = new byte[2048]; int length = 0; while(-1 != (length = is.read(buffer, 0, buffer.length))){ os.write(buffer, 0, length); } is.close(); os.close(); } }
另一种方式将html保存到成本地html UrlConnection2.java import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; public class UrlConnection2 { public static void main(String[] args) throws Exception{ URL url = new URL("http://www.csdn.net"); // URLConnection conn = url.openConnection(); // InputStream is = conn.getInputStream(); InputStream is = url.openStream(); OutputStream os = new FileOutputStream("c:\\infoq.html"); byte[] buffer = new byte[2048]; int length = 0; while(-1 != (length = is.read(buffer, 0, buffer.length))){ os.write(buffer, 0, length); } is.close(); os.close(); } }
打印www.sohu.com的源代码 UrlConnection3.java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; public class UrlConnection3{ public static void main(String[] args) throws Exception{ URL url = new URL("http://www.sohu.com"); BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream())); String line = null; while(null != (line = br.readLine())){ System.out.println(line); } br.close(); } }
读取http://www.baidu.com的网页源代码 UrlConnection4.java import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; class Win extends JFrame implements ActionListener, Runnable{ JButton button; URL url; JTextField text; JTextArea area; byte b[] = new byte[118]; Thread thread; public Win(){ text = new JTextField(20); area = new JTextArea(12, 12); button = new JButton("确定"); button.addActionListener(this); thread = new Thread(this); JPanel p = new JPanel(); p.add(new JLabel("输入网址:")); p.add(text); p.add(button); Container con = this.getContentPane(); con.add(new JScrollPane(area), BorderLayout.CENTER); con.add(p, BorderLayout.NORTH); setBounds(60, 60, 400, 300); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e){ if (!(thread.isAlive())){ thread = new Thread(this); } try{ thread.start(); } catch (Exception ee){ JOptionPane.showMessageDialog(this, "我正在读取,请稍后", "提示信息", JOptionPane.ERROR_MESSAGE); } } public void run(){ try{ int n = -1; area.setText(null); url = new URL(text.getText().trim()); InputStream in = url.openStream(); while ((n = in.read(b)) != -1){ String s = new String(b, 0, n); area.append(s); } } catch (MalformedURLException e1){ text.setText("" + e1); return; } catch (IOException e1){ text.setText("" + e1); return; } } } public class UrlConnection4{ public static void main(String args[]){ new Win(); } }
InetAddressTest.java import java.net.InetAddress; public class InetAddressTest{ public static void main(String[] args) throws Exception{ InetAddress address = InetAddress.getLocalHost(); System.out.println(address); address = InetAddress.getByName("www.sohu.com"); System.out.println(address); } }
2. 套接字(Socket)实现TCP
TcpServer.java import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class TcpServer{ public static void main(String[] args) throws Exception{ ServerSocket ss = new ServerSocket(5000); Socket socket = ss.accept(); InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream(); byte[] buffer = new byte[200]; int length = is.read(buffer); System.out.println(new String(buffer, 0 ,length)); // int length = 0; // while(-1 != (length = is.read(buffer,0, buffer.length))){ // String str = new String(buffer, 0, length); // System.out.println(str); // } os.write("welcome".getBytes()); is.close(); os.close(); socket.close(); } }
TcpClient.java import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class TcpClient{ public static void main(String[] args) throws Exception{ Socket socket = new Socket("127.0.0.1", 5000); InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream(); os.write("hello world".getBytes()); byte[] buffer = new byte[200]; int length = is.read(buffer); System.out.println(new String(buffer, 0 ,length)); // int length = 0; // while(-1 != (length = is.read(buffer,0, buffer.length))){ // String str = new String(buffer, 0, length); // System.out.println(str); // } is.close(); os.close(); socket.close(); } } 运行结果: Server端:hello world Client端:welcome
3. 实现实时通信
ServerInputThread.java import java.io.IOException; import java.io.InputStream; import java.net.Socket; public class ServerInputThread extends Thread{ private Socket socket; public ServerInputThread(Socket socket){ this.socket = socket; } @Override public void run(){ try{ InputStream is = socket.getInputStream(); while(true){ byte[] buffer = new byte[1024]; int length = is.read(buffer); String str = new String(buffer, 0, length); System.out.println(str); } } catch (IOException e){ e.printStackTrace(); } } }
ServerOutputThread.java package code17; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Socket; public class ServerOutputThread extends Thread{ private Socket socket; public ServerOutputThread(Socket socket){ this.socket = socket; } @Override public void run(){ try{ OutputStream os = socket.getOutputStream(); while(true){ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line = reader.readLine(); os.write(line.getBytes()); } } catch (IOException e){ e.printStackTrace(); } } }
ClientInputThread.java import java.io.IOException; import java.io.InputStream; import java.net.Socket; public class ClientInputThread extends Thread{ private Socket socket; public ClientInputThread(Socket socket){ this.socket = socket; } @Override public void run(){ try{ InputStream is = socket.getInputStream(); while(true){ byte[] buffer = new byte[1024]; int length = is.read(buffer); String str = new String(buffer, 0, length); System.out.println(str); } } catch (IOException e){ e.printStackTrace(); } } }
ClientOutputThread.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Socket; public class ClientOutputThread extends Thread{ private Socket socket; public ClientOutputThread(Socket socket){ this.socket = socket; } @Override public void run(){ try{ OutputStream os = socket.getOutputStream(); while (true){ BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); String line = reader.readLine(); os.write(line.getBytes()); } } catch (IOException e){ e.printStackTrace(); } } }
发送消息给客户端,接收客户端的消息 MainServer.java import java.io.IOException; import java.net.Socket; public class MainClient{ public static void main(String[] args) throws Exception, IOException{ Socket socket = new Socket("127.0.0.1", 4000); new ClientInputThread(socket).start(); new ClientOutputThread(socket).start(); } }
发送消息给服务器端,接收服务器端的消息 MainClient.java import java.net.ServerSocket; import java.net.Socket; public class MainServer{ public static void main(String[] args) throws Exception{ ServerSocket serverSocket = new ServerSocket(4000); while(true){ Socket socket = serverSocket.accept(); //启动读写线程 new ServerInputThread(socket).start(); new ServerOutputThread(socket).start(); } } }
4. 无连接的数据报UDP
UdpTest1.java import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UdpTest1{ public static void main(String[] args) throws Exception{ DatagramSocket socket = new DatagramSocket(); String str = "hello world"; DatagramPacket packet = new DatagramPacket(str.getBytes(), str.length(), InetAddress.getByName("localhost"), 7000); socket.send(packet); byte[] buffer = new byte[1000]; DatagramPacket packet2 = new DatagramPacket(buffer,100); socket.receive(packet2); System.out.println(new String(buffer, 0, packet2.getLength())); socket.close(); } } 运行结果: 启动UdpTest2.java后显示: hello world
UdpTest2.java import java.net.DatagramPacket; import java.net.DatagramSocket; public class UdpTest2{ public static void main(String[] args) throws Exception{ DatagramSocket socket = new DatagramSocket(7000); byte[] buffer = new byte[1000]; DatagramPacket packet = new DatagramPacket(buffer, 1000); socket.receive(packet); System.out.println(new String(buffer, 0, packet.getLength())); String str = "welcome"; DatagramPacket packet2 = new DatagramPacket(str.getBytes(), str.length(), packet.getAddress(), packet.getPort()); socket.send(packet2); socket.close(); } } 运行结果: 启动UdpTest1.java后显示: welcome
发表评论
-
Java中获取IP地址、子网掩码、网关地址
2019-06-26 10:53 01. Java中获取IP地址、子网掩码、网关地址、ping连通 ... -
Java中ThreadLocal
2019-04-19 10:44 01. Java中ThreadLocal Java中的Th ... -
Java中原子性锁synchronized、Lock
2019-04-18 15:19 01. synchronized依赖JVM 1) 修饰代码 ... -
Java中原子性Atomic
2019-04-18 14:45 01. Atomic包简介 java.util.concu ... -
开发常用链接
2019-03-26 11:21 0在线工具:http://tool.oschina.net/ ... -
java1234学习目录
2019-03-21 11:08 01-01-01 N01 J2SEv2(41课时) ... -
Java中Thread线程
2018-10-25 09:38 3791. 实现线程的两种方式 1. 继承Thread类并重写 ... -
Java中serializable序列化
2018-10-24 14:46 4681. 序列化 transient不会被序列化。 imp ... -
Java中CharSet集
2018-10-24 11:31 5351. CharSet集 import java.nio. ... -
Java中RandomAccessFile类
2018-10-24 11:30 4941. RandomAccessFile类 1. 使用Ra ... -
Java中I/O的字符流InputStreamReader和OutputStreamWriter
2018-10-22 09:43 4341. InputStreamReader和OutputStre ... -
Java中其它输入输出流
2018-10-22 09:08 4651. ByteArrayInputStream流 以ar ... -
Java中I/O的OutputStream流
2018-10-22 08:54 4831. Java中I/O的OutputStream流 1. ... -
Java中I/O的InputStream流
2018-10-22 08:42 4581. Java中I/O的InputStream流 1. ... -
Java中I/O的File类
2018-10-19 13:45 4291. Java中I/O的File类 1. 在window ... -
Java中innerClass内部类
2018-10-18 09:37 4311. Java中innerClass内部类 用AA.BB ... -
Java中adapter适配器
2018-10-18 08:36 5771. Java中adapter适配器 适配器adapte ... -
Java中awt包
2018-10-17 11:26 17021. Java中awt包 AWT事件模型Event 1 ... -
Java中frame对象
2018-10-17 10:56 6611. Java中frame对象 1. Frame对象 ... -
Java中exception异常
2018-10-17 10:24 4071. Java中exception异常 Java中的异常 ...
相关推荐
本资源是使用 java,分别用 TCP 和 UDP 传输文件的源代码。读者朋友可以下载下来,参考着满足自己的需求。 另有博客《Java 使用 TCP 和 UDP 传输文件》可以参考,地址是:...
Java作为一门广泛使用的编程语言,提供了丰富的API来支持TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)这两种主要的网络通信协议。下面我们将深入探讨Java如何实现TCP和UDP的测试代码,以及...
Java中的TCP和UDP Socket通信是网络编程的基础,用于在不同设备之间建立可靠的数据传输通道。TCP(Transmission Control Protocol)提供的是面向连接、有序且无损的服务,而UDP(User Datagram Protocol)则是无连接...
java读写Modbus TCP UDP数据,java与modbus通信,Modbus TCP UDP与java通信 全开源 这是一个能正常通过Modbus TCP UDP协议读写项目 请放心下载,完全开源,在多个项目中已经使用
在计算机网络中,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议,它们各自有着不同的特性和应用场景。本资源提供的是基于Java实现的TCP和UDP协议的源代码,可以直接运行并验证其正确性。 TCP...
在Java编程语言中,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的网络通信协议,用于在互联网上实现数据的可靠传输。本文将深入探讨这两种协议的基本概念,以及如何使用纯Java来实现TCP和UDP的示例代码。...
2) 基于Java Socket TCP和UDP实现一个简易的网络文件服务程序,包含服务器端FileServer和客户端FileClient; 3) 服务器端启动时需传递root目录参数,并校验该目录是否有效; 4) 服务器启动后,开启TCP:2021端口,...
文件"运用JAVA的concurrent_ExecutorService线程池实现socket的TCP和UDP连接 - 空山不空 - 博客园.mht"揭示了一个高级话题:如何利用Java并发库中的`ExecutorService`来管理TCP和UDP的并发连接。`ExecutorService`是...
在IT行业中,网络编程是不可或缺的一部分,特别是在Java开发中,TCP和UDP协议是网络通信的基础。本实验项目“tcp_udp_socket.zip”旨在帮助开发者理解如何使用Java实现TCP和UDP的Socket通信。以下将详细讲解这两个...
在IT行业中,网络通信是至关重要的一个领域,Java作为一门广泛应用的编程语言,提供了丰富的API来支持TCP(传输控制协议)和UDP(用户数据报协议)这两种不同的网络通信方式。本篇文章将深入探讨如何使用Java实现TCP...
本次实验旨在通过实践操作,帮助学生深入理解 TCP 和 UDP 的工作原理,并掌握使用 Java 进行网络编程的方法。 #### 实验目的 1. **熟悉 Java 开发环境**:学习如何使用 Java 实现 TCP 流通信和 UDP 数据报通信。 2...
Socket编程是Java中用于网络通信的核心技术,它涵盖了TCP(传输控制协议)和UDP(用户数据报协议)两种主要的互联网协议。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,而UDP则是一种无连接的、不可靠...
在标题“Socket之tcp和udp”中,涉及的核心知识点是TCP(传输控制协议)和UDP(用户数据报协议),这两种协议是网络通信中常见的传输层协议。 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层...
java多线程实现TCP连接UDP聊天的聊天程序
2) 基于Java Socket TCP和UDP实现一个简易的网络文件服务程序,包含服务器端FileServer和客户端FileClient; 3) 服务器端启动时需传递root目录参数,并校验该目录是否有效; 。。。。。。附带简单的实验报告,只需...
采用Java语言实现了TCP和UDP传输,TCP方面具体功能有:在客户端获取服务器根目录下文件列表、大小等,进入指定文件夹,退出文件夹;UDP方面的功能有:在客户端通过get方法获取服务器指定文件并下载到指定路径。
它简化了网络编程,特别是对于TCP和UDP协议的处理,使得开发者能够轻松地搭建面向物联网(IoT)设备的上行和下行通信服务。 在TCP(传输控制协议)方面,Netty提供了全面的API来创建服务器和客户端。TCP是一种面向...
在UDP中,可以减少不必要的头部信息,提高传输效率。 4. **连接管理**:TCP的连接建立和关闭过程可能导致延迟,UDP则无需此步骤。优化时,要考虑如何在保证服务质量和响应速度之间找到平衡。 5. **多路复用**:TCP...
用Java编写的一个聊天程序,通信部分大部分是UDP通信
本篇将深入探讨如何在Java环境中使用Socket进行TCP和UDP的文件传输。 TCP是一种面向连接的、可靠的传输协议,它通过三次握手建立连接,并确保数据包按顺序到达,如果数据包丢失,TCP会自动重传。在Java中,我们可以...