Java网络编程Demo(一)多线程的TCP网络程序
来源:互联网 发布:数据库完整性约束条件 编辑:程序博客网 时间:2024/06/02 10:13
Demo_01.java
package TCP;import java.io.*;import java.net.*;public class Demo_01 { public static void main(String[] args) throws Exception { new TCPServer().listen(); }}// TCP服务端class TCPServer { private static final int PORT = 10000; public void listen() throws Exception { ServerSocket serverSocket = new ServerSocket(PORT); // 使用while循环不停地接收客户端发送的请求, 可允许多个用户访问同一个服务器 while (true) { final Socket client = serverSocket.accept(); new Thread() { public void run() { // 使用"带资源的try"构造, 可对try块参数表中的所有AutoCloseable对象自动调用close() try (OutputStream os = client.getOutputStream()) { System.out.println("开始与客户端交互数据..."); os.write(("与服务端交互数据成功...").getBytes()); Thread.sleep(5000); System.out.println("结束与客户端交互数据..."); } catch (Exception e) { e.printStackTrace(); } }; }.start(); } }}
Demo_02.java
package TCP;import java.io.*;import java.net.*;public class Demo_02 { public static void main(String[] args) throws Exception { new TCPClient().connect(); }}// TCP客户端class TCPClient { private static final int PORT = 10000; // 服务器的端口号 public void connect() throws Exception { Socket client = new Socket(InetAddress.getLocalHost(), PORT); client.setSoTimeout(10000); // 设置超时 // 使用"带资源的try"构造, 可对try块参数表中的所有AutoCloseable对象自动调用close() try (InputStream is = client.getInputStream()) { byte[] buf = new byte[1024]; int len = is.read(buf); System.out.println(new String(buf, 0, len)); } }}
运行结果
- Demo_01.java
- Demo_02.java
总结
为了验证服务器端程序(Demo_01.java)是否实现了多线程,首先运行服务器端程序(Demo_01.java),之后运行三个客户端程序(Demo_02.java),当运行第一个客户端程序时,服务器端马上就进行数据处理,打印出“开始与客户端交互数据…”,再运行第二个和第三个客户端程序,会发现服务器端也立刻作出回应,两个客户端会话结束后分别打印各自结束信息。这说明通过多线程的方式,可以实现多个用户对同一个服务器端程序的访问。
0 0
- Java网络编程Demo(一)多线程的TCP网络程序
- java 基TCP的多线程 网络编程
- TCP网络编程demo
- java----网络编程(一)TCP
- JAVA网络编程入门的两个demo(TCP+UDP)
- JAVA网络编程入门的两个demo(TCP+UDP)
- Java网络编程Demo(二)TCP文件上传
- Java网络编程_基于TCP协议的网络编程(一)
- Java网络编程之(二): TCP的多线程连接
- Java网络编程之(二): TCP的多线程连接
- 网络编程TCP(一)
- Java网络编程(tcp在服务器上应用多线程)
- 网络编程TCP(一)
- Java网络编程:第一个TCP程序
- Java网络编程之(一): TCP的简单连接
- Java网络编程之(一): TCP的简单连接
- Java网络编程(TCP)
- java网络编程(tcp)
- 【转】Oracle REGEXP_LIKE介绍和例子
- Java Float.isNaN Double.isNaN方法工作原理
- 快速排序 c#实现
- shiro之自动过虑URL,无需配置。
- CTP源码分析5 CTP链路质量估计层结构及源码分析(四)----源码实现解读(一)
- Java网络编程Demo(一)多线程的TCP网络程序
- docker环境搭建
- caffe源码中的common_layers
- Android 自定义View——BarrageView实现弹幕功能
- SpringMVC与Mybatis集合实现调用存储过程、事务控制
- Js中去除数组中重复元素的4种方法
- Nand Flash寄存器中TACLS、TWRPH0、TWRPH1参数的配置
- jzoj 2541. 【NOIP2011模拟9.1】方格取数
- ajax无刷新上传