Java 网络编程中 TCP 通信服务端的多线程模型
2014-03-07 00:00
686 查看
Java 中 TCP 通信服务端的多线程模型基本步骤:
创建 ServerSocket 对象,指定监听的端口号。
将 accept() 方法作为循环条件,循环监听客户端的请求。
监听到请求后,使用实现的线程类来生存线程对象。
在线程的 run() 方法中进行通信操作
服务端代码 TCPServerByThread :
客户端 TCPClinet:
创建 ServerSocket 对象,指定监听的端口号。
将 accept() 方法作为循环条件,循环监听客户端的请求。
监听到请求后,使用实现的线程类来生存线程对象。
在线程的 run() 方法中进行通信操作
服务端代码 TCPServerByThread :
import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Date; public class TCPServerByThread { public static void main(String[] args) throws IOException { ServerSocket ss = new ServerSocket(8888); //用端口号8888创建一个ServerSocket对象 Socket s = null; while((s = ss.accept()) != null) { //循环监听来自客户端的请求,当监听到一个客户端的请求就创建一个线程 new ListenerThread(s).start(); } ss.close(); } } class ListenerThread extends Thread { private Socket socket; public ListenerThread(Socket socket) { super(); this.socket = socket; } public void run() { try { OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write(this.getName() + " now time: " + new Date()); pw.flush(); pw.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
客户端 TCPClinet:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Socket; import java.net.UnknownHostException; public class TCPClinet { public static void main(String[] args) throws UnknownHostException, IOException { Socket s = new Socket("localhost",8888); InputStream is = s.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String str = br.readLine(); System.out.println("Message:" + str); } }
相关文章推荐
- socket 网络编程快速入门(二)教你编写基于UDP/TCP的服务端多线程通信
- 网络编程_TCP_Socket通信_聊天室_客户端多线程_群聊JAVA191-192
- java网络编程学习之——构建基于多线程的网络通信模型1
- Linux网络编程之socket简单通信TCP--服务端代码
- Java基础-网络编程(概述、网络模型、TCP和UDP)
- java 网络编程【5】 完善的TCP服务器程序模型(一个实例)
- 网络编程 UDP通信的过程 TCP通信过程 多线程文件上传
- 网络编程_TCP_Socket通信原理_多个客户端_聊天室原理JAVA189-190
- Java网络编程(tcp在服务器上应用多线程)
- 网络编程_TCP_Socket通信_聊天室_私聊_构思_实现JAVA193-194
- 第六篇:JAVA网络编程之TCP Socket通信中由read返回值造成的的死锁问题(含代码)
- Java网络编程Demo(一)多线程的TCP网络程序
- [置顶] JAVA进阶案例 TCP编程之网络聊天工具(服务端)
- java网络编程TCP传输—流操作—服务端反馈与客户端接收
- Java网络编程之TCP通信完整代码示例
- 老生常谈Java网络编程TCP通信(必看篇)
- Java中的TCP/UDP网络通信编程
- Java中的TCP/UDP网络通信编程
- Java网络编程(基于TCP和UDP的通信实现)