net17_5.java

来自「这是一个简易的聊天程序,它是一个基于b/s模式的系统,希望大家看了之后能给予更多」· Java 代码 · 共 87 行

JAVA
87
字号
/**
 * Filename:Net17_5
 * Description:
 * Copyright:    Copyright (c) 2002
 * Company:
 * @author:Liyunshan
 * @version 1.0
 */

import java.net.*;
import java.io.*;

class SocketThread extends Thread
{
	private Socket socket;
	private BufferedReader input;
	private BufferedReader in;
	private PrintWriter out;

	public SocketThread(Socket s) throws IOException
	{
		socket = s;
		input = new BufferedReader(new InputStreamReader(System.in));
		in = new BufferedReader(
				new InputStreamReader(socket.getInputStream()));
		out = new PrintWriter(
				new	OutputStreamWriter(socket.getOutputStream()));
		start();	//调用run()
	}

	public void run()
	{
		try
		{
			String serverString = null;
			String clientString = null;
			System.out.println(socket.getInetAddress().getHostAddress() +
					" connected.");
			System.out.print("Server : ");
			serverString = input.readLine();
			boolean done = false;
			while (!done)
			{
				if (serverString != null)
				{
					out.println(serverString);
					out.flush();
				}
				clientString = in.readLine();
				if (clientString != null)
					System.out.println(Thread.currentThread().getName()+" Client : " + clientString);
				System.out.print(Thread.currentThread().getName()+"Server : ");
				serverString = input.readLine();
				if (serverString.equals("bye")) done = true;
			}
		}
		catch (IOException e){}
		finally
		{
			try	{ socket.close(); }
			catch (IOException e){}
		}
	}
}

public class Net17_5
{
	public static void main(String args[]) throws IOException
	{
	  	ServerSocket serverSocket = new ServerSocket(3434);
	  	System.out.println("Hello! Enter bye to exit.");
	  	try
	  	{
			while (true)
			{
				Socket server = serverSocket.accept();
				try
				{
					new SocketThread(server);
				}
				catch (IOException e) { server.close();}
			}
		}
		finally { serverSocket.close(); }
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?