知识大全 多线程对多个客户端的监听
Posted 知
篇首语:我会努力奋斗直到亮瞎你们的双眼。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 多线程对多个客户端的监听相关的知识,希望对你有一定的参考价值。
这是一个比较简单的例子来说明socket编程 服务器端使用了多线程来监听客户端
服务器端的代码
package SocketTest;
import java io *;
import *;
import java util *;
class SocketServer
public SocketServer()
Socket ining;
ServerSocket so;
try
so= new ServerSocket( );
System out println( 等待客户端连接 );
while(true)
try
ining = so accept( );
System out println( 已连接客户端 );
GetInfo gi=new GetInfo(ining);//调用线程
catch (IOException e)
e printStackTrace();
catch (IOException e)
e printStackTrace();
public static void main(String[] args)
new SocketServer();
private static class GetInfo implements Runnable //线程类
private Socket ining;
private String s=null;
private BufferedReader b;
Thread t;
public GetInfo(Socket ining)
try
this ining=ining;
b=new BufferedReader(new InputStreamReader(ining getInputStream()));
t=new Thread(this);
t start();
catch(IOException e)
e printStackTrace();
public void run()
try
while (true)
s=b readLine();
System out println(s);
if(s equals( end ))
break;
catch(IOException e)
e printStackTrace();
客户端的代码
package SocketTest;
import java io *;
import *;
import java util *;
public class SocketClient
public static void main(String[] args)
try
Socket so = new Socket( localhost );
System out println( 连接服务器 );
BufferedReader b=new BufferedReader(new InputStreamReader(System in));
OutputStream outStream = so getOutputStream();
PrintWriter out = new PrintWriter(outStream);
String s=null;
while (true)
s=b readLine();
out println( Client: +s);
out flush();
if(s equals( end ))
break;
catch (IOException e)
e printStackTrace();
cha138/Article/program/Java/gj/201311/27636
相关参考