首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java 多线程 Socket编程示范

2012-11-04 
Java 多线程 Socket编程示例1.服务端package?sterningimport?java.io.BufferedReaderimport?java.io.IOE

Java 多线程 Socket编程示例


1.服务端

Java 多线程 Socket编程示范package?sterning;
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范import?java.io.BufferedReader;
Java 多线程 Socket编程示范import?java.io.IOException;
Java 多线程 Socket编程示范import?java.io.InputStream;
Java 多线程 Socket编程示范import?java.io.InputStreamReader;
Java 多线程 Socket编程示范import?java.io.OutputStream;
Java 多线程 Socket编程示范import?java.io.PrintWriter;
Java 多线程 Socket编程示范import?java.net.*;
Java 多线程 Socket编程示范import?java.util.concurrent.*;
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范Java 多线程 Socket编程示范public?class?MultiThreadServer?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????private?int?port=8821;
Java 多线程 Socket编程示范????private?ServerSocket?serverSocket;
Java 多线程 Socket编程示范????private?ExecutorService?executorService;//线程池
Java 多线程 Socket编程示范????private?final?int?POOL_SIZE=10;//单个CPU线程池大小
Java 多线程 Socket编程示范????
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????public?MultiThreadServer()?throws?IOExceptionJava 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????serverSocket=new?ServerSocket(port);
Java 多线程 Socket编程示范????????//Runtime的availableProcessor()方法返回当前系统的CPU数目.
Java 多线程 Socket编程示范????????executorService=Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*POOL_SIZE);
Java 多线程 Socket编程示范????????System.out.println("服务器启动");
Java 多线程 Socket编程示范????}
Java 多线程 Socket编程示范????
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????public?void?service()Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????while(true)Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????Socket?socket=null;
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????????try?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????????//接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接
Java 多线程 Socket编程示范????????????????socket=serverSocket.accept();
Java 多线程 Socket编程示范????????????????executorService.execute(new?Handler(socket));
Java 多线程 Socket编程示范????????????????
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????????}?catch?(Exception?e)?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????????e.printStackTrace();
Java 多线程 Socket编程示范????????????}
Java 多线程 Socket编程示范????????}
Java 多线程 Socket编程示范????}
Java 多线程 Socket编程示范????
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????public?static?void?main(String[]?args)?throws?IOException?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????new?MultiThreadServer().service();
Java 多线程 Socket编程示范????}
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范}
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范Java 多线程 Socket编程示范class?Handler?implements?RunnableJava 多线程 Socket编程示范{
Java 多线程 Socket编程示范????private?Socket?socket;
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????public?Handler(Socket?socket)Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????this.socket=socket;
Java 多线程 Socket编程示范????}
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????private?PrintWriter?getWriter(Socket?socket)?throws?IOExceptionJava 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????OutputStream?socketOut=socket.getOutputStream();
Java 多线程 Socket编程示范????????return?new?PrintWriter(socketOut,true);
Java 多线程 Socket编程示范????}
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????private?BufferedReader?getReader(Socket?socket)?throws?IOExceptionJava 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????InputStream?socketIn=socket.getInputStream();
Java 多线程 Socket编程示范????????return?new?BufferedReader(new?InputStreamReader(socketIn));
Java 多线程 Socket编程示范????}
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????public?String?echo(String?msg)Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????return?"echo:"+msg;
Java 多线程 Socket编程示范????}
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????public?void?run()Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????try?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????System.out.println("New?connection?accepted?"+socket.getInetAddress()+":"+socket.getPort());
Java 多线程 Socket编程示范????????????BufferedReader?br=getReader(socket);
Java 多线程 Socket编程示范????????????PrintWriter?pw=getWriter(socket);
Java 多线程 Socket编程示范????????????String?msg=null;
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????????while((msg=br.readLine())!=null)Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????????System.out.println(msg);
Java 多线程 Socket编程示范????????????????pw.println(echo(msg));
Java 多线程 Socket编程示范????????????????if(msg.equals("bye"))
Java 多线程 Socket编程示范????????????????????break;
Java 多线程 Socket编程示范????????????}
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????}?catch?(IOException?e)?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????e.printStackTrace();
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????}finallyJava 多线程 Socket编程示范{
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????????try?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????????if(socket!=null)
Java 多线程 Socket编程示范????????????????????socket.close();
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????????}?catch?(IOException?e)?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????????e.printStackTrace();
Java 多线程 Socket编程示范????????????}
Java 多线程 Socket编程示范????????}
Java 多线程 Socket编程示范????}
Java 多线程 Socket编程示范}


2.客户端

Java 多线程 Socket编程示范package?sterning;
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范import?java.io.BufferedReader;
Java 多线程 Socket编程示范import?java.io.IOException;
Java 多线程 Socket编程示范import?java.io.InputStreamReader;
Java 多线程 Socket编程示范import?java.io.OutputStream;
Java 多线程 Socket编程示范import?java.net.Socket;
Java 多线程 Socket编程示范import?java.util.concurrent.ExecutorService;
Java 多线程 Socket编程示范import?java.util.concurrent.Executors;
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范Java 多线程 Socket编程示范public?class?MultiThreadClient?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????public?static?void?main(String[]?args)?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????int?numTasks?=?10;
Java 多线程 Socket编程示范????????
Java 多线程 Socket编程示范????????ExecutorService?exec?=?Executors.newCachedThreadPool();
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????for?(int?i?=?0;?i?<?numTasks;?i++)?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????exec.execute(createTask(i));
Java 多线程 Socket编程示范????????}
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范????}
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范????//?定义一个简单的任务
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????private?static?Runnable?createTask(final?int?taskID)?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????return?new?Runnable()?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????private?Socket?socket?=?null;
Java 多线程 Socket编程示范????????????private?int?port=8821;
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????????public?void?run()?Java 多线程 Socket编程示范{
Java 多线程 Socket编程示范????????????????System.out.println("Task?"?+?taskID?+?":start");
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????????????try?Java 多线程 Socket编程示范{????????????????????
Java 多线程 Socket编程示范????????????????????socket?=?new?Socket("localhost",?port);
Java 多线程 Socket编程示范????????????????????//?发送关闭命令
Java 多线程 Socket编程示范????????????????????OutputStream?socketOut?=?socket.getOutputStream();
Java 多线程 Socket编程示范????????????????????socketOut.write("shutdown\r\n".getBytes());
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范????????????????????//?接收服务器的反馈
Java 多线程 Socket编程示范????????????????????BufferedReader?br?=?new?BufferedReader(
Java 多线程 Socket编程示范????????????????????????????new?InputStreamReader(socket.getInputStream()));
Java 多线程 Socket编程示范????????????????????String?msg?=?null;
Java 多线程 Socket编程示范????????????????????while?((msg?=?br.readLine())?!=?null)
Java 多线程 Socket编程示范????????????????????????System.out.println(msg);
Java 多线程 Socket编程示范Java 多线程 Socket编程示范????????????????}?catch?(IOException?e)?Java 多线程 Socket编程示范{????????????????????
Java 多线程 Socket编程示范????????????????????e.printStackTrace();
Java 多线程 Socket编程示范????????????????}
Java 多线程 Socket编程示范????????????}
Java 多线程 Socket编程示范
Java 多线程 Socket编程示范????????};
Java 多线程 Socket编程示范????}
Java 多线程 Socket编程示范}
Java 多线程 Socket编程示范


从而实现了多个客户端向服务器端发送请求,服务器端采用多线程的方式来处理的情况.再结合我之前的例子---Java基于Socket文件传输示例,就可以实现多线程文件的传输了

热点排行