首页 > 编程语言 > 详细

socket编程示例(多线程)

时间:2015-03-13 14:21:59      阅读:247      评论:0      收藏:0      [点我收藏+]

客户端代码如下:

import java.io.*;
import java.net.*;
import java.util.Scanner;

public class SimpleChatClient {
	BufferedReader reader;
	PrintWriter writer;
	Socket sock;
	
	public void go(){
		System.out.println("客户端启动!");
		setUpNetworking();
		//发送数据到服务器
		Scanner scanner=new Scanner(System.in);
		String sendString=scanner.nextLine();
		while(sendString!=null&&!sendString.equals("byebye")){
			writer.println(sendString);
			writer.flush();
			sendString=scanner.nextLine();
		}
		scanner.close();
		System.out.println("客户端退出!");
	}
	
	public void setUpNetworking(){
		try {
			sock=new Socket("127.0.0.1",5000);
			InputStreamReader streamReader=new InputStreamReader(sock.getInputStream());
			reader=new BufferedReader(streamReader);
			writer=new PrintWriter(sock.getOutputStream());
			System.out.println("networking established");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
		
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SimpleChatClient client=new SimpleChatClient();
		client.go();
	}

}

服务器端代码如下:

import java.io.*;
import java.net.*;
public class SimpleChatServer {	
	//内部类
	public class ClientHandler implements Runnable{
		BufferedReader reader;
		Socket sock;
	
		public ClientHandler(Socket clientSocket){
			sock=clientSocket;
			InputStreamReader isReader;
			try {	
				isReader = new InputStreamReader(sock.getInputStream());
				reader=new BufferedReader(isReader);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}	
		@Override
		public void run() {
			// TODO Auto-generated method stub
			String messageString;
			try {
				while((messageString=reader.readLine())!=null){
					System.out.println("read "+messageString);
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block			
					System.out.println("有一个连接断开");
			}
		}
		
	}
	public void go(){
		System.out.println("服务器启动成功!");
		ServerSocket serverSock;
		try {
			serverSock = new ServerSocket(5000);
			while(true){
				Socket clientSocket=serverSock.accept();
				Thread thread=new Thread(new ClientHandler(clientSocket));
				thread.start();
				System.out.println("got a connection!");
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new SimpleChatServer().go();
	}

}


socket编程示例(多线程)

原文:http://blog.csdn.net/sxhlovehmm/article/details/44240543

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!