java 多线程Echo server和client 例子

原创 2015年07月11日 03:50:06
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.ClientInfoStatus;


public class EchoMultiThreadServer {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ServerSocket server=null;
		try {
			server=new ServerSocket(8888);
			Socket client=null;
			boolean flag=true;
			while(flag){
				System.out.println("waiting....");
				client=server.accept();
				new Thread(new MultiThread(client)).start();;
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				server.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}

}

class MultiThread implements Runnable{
	Socket socket = null;
	PrintStream out = null;
	BufferedReader bur = null;

	public MultiThread(Socket s) {
		this.socket = s;
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		try {
			System.out.println(socket);

			bur = new BufferedReader(new InputStreamReader(
					socket.getInputStream()));
			out = new PrintStream(socket.getOutputStream());

			boolean flag = true;
			while (flag) {
				String s = bur.readLine();
				if(s==null||"".equals(s)||"bye".equals(s)){
					flag=false;
				}
				else{
					out.println("Echo:"+s);
				}

			}
			System.out.println("close");
			bur.close();
			socket.close();
			out.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}




import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;

public class EchoClient {
	public static void main(String[] args) throws IOException{
		Socket socket=new Socket("127.0.0.1",8888);
		BufferedReader buf=null;
		PrintStream out=null;
		BufferedReader input=null;
		boolean f=true;
		buf=new BufferedReader(new InputStreamReader(socket.getInputStream()));
		out=new PrintStream(socket.getOutputStream());
		input=new BufferedReader(new InputStreamReader(System.in));
		while(f){
			System.err.println("输入信息:");
			String s=input.readLine();
			out.println(s);
			if(s.equals("bye")){
				f=false;
			}else{
				String echo= buf.readLine();
				System.out.println(echo);
			}
			
		}
		buf.close();
		socket.close();
	}
}


采用epoll实现echo server和client

转自 http://zhouxiaodan.blog.51cto.com/1177793/1176286 #include #include #include #include ...
  • boyhailong
  • boyhailong
  • 2014年01月17日 20:50
  • 1877

thrift客户端调用不支持多线程方式,非线程安全

thrift client是非线程安全,多线程下使用可能导致server和客户端程序崩溃。client的每次远程方法调用其实是多次调用socket写操作,非原子操作。多线程交错使用,使从代码上看来是一...
  • fangletian1981
  • fangletian1981
  • 2015年08月11日 13:56
  • 2194

java socket通讯之 echo server 和echo client例子

import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net...
  • earbao
  • earbao
  • 2013年12月26日 17:50
  • 3170

Java NIO 实现 EchoServer EchoClient

阻塞模式EchoServer采用阻塞模式,用线程池中的工作线程处理每个客户连接。 EchoClient也采用阻塞模式,单线程。serverpackage com.test.socket.nio.ec...
  • u011239443
  • u011239443
  • 2016年12月21日 18:50
  • 907

使用java实现Server和Client(TCP)

Server.java import java.io.*; import java.net.*; public class Server { public static final i...
  • svitter
  • svitter
  • 2014年09月11日 16:52
  • 6427

Java网络编程(ECHO案列)

//服务器端 package org.tcp; import java.io.BufferedReader; import java.io.InputStreamReader; ...
  • u012927417
  • u012927417
  • 2014年08月16日 00:35
  • 666

Java - Socket example: EchoClient and EchoServer

/* * To change this license header, choose License Headers in Project Properties. * To change this...
  • chimomo
  • chimomo
  • 2016年03月05日 16:53
  • 901

Java实现基础的client/server模型

java对网络的支持 1、java支持基于流的通信(Stream-based communication),也支持基于包的通信(backage-based communication) 2、基于流的通...
  • Al_assad
  • Al_assad
  • 2016年11月01日 08:24
  • 612

UDP Client Server Echo Example

Heres an example UDP echo server I created from a simple UDP example (originally to help another thr...
  • Dreamcode
  • Dreamcode
  • 2009年05月21日 13:40
  • 2728

Netty5 echo server练习

Netty5的架构比Netty4的架构及代码上都有很多的改进,看起来很清晰。         下面的根据管网例子改进的Echo Server例子代码。        代码中增加的有netty自带的ha...
  • doctor_who2004
  • doctor_who2004
  • 2015年07月06日 21:50
  • 1012
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 多线程Echo server和client 例子
举报原因:
原因补充:

(最多只允许输入30个字)