tcpserver.java

来自「这是一个用java编写的模拟FTP的程序」· Java 代码 · 共 73 行

JAVA
73
字号
import java.net.*;
import java.io.*;

public class TcpServer extends Thread
{
	public static final int PORT=2000;
	private Socket client=null;
	
	public TcpServer(Socket c)
	{
		client = c;
	}

	public static void main(String args[])
	{
		try
		{
			ServerSocket server = new ServerSocket (PORT);
			System.out.println ("TCP service started");

			for (;;)
			{
				Socket c = server.accept();
				Thread tcpThread = new TcpServer(c);
				tcpThread.start();
			}
		}
		catch (BindException be)
		{
			System.err.println ("Service already running on port " + PORT );
		}
		catch(IOException e)
		{
			System.err.println ("I/O error - " + e);
		}
	}
	
	public void run()
	{
		try
		{
			BufferedReader bReader = new BufferedReader
						(new InputStreamReader(client.getInputStream()));
			String fileName = bReader.readLine();
			
			System.out.println ("Received request from " +
						client.getInetAddress() + ":" +
						client.getPort() +
						"\nFileName : " + fileName);

			FileInputStream fin = new FileInputStream(fileName);
			OutputStream out = client.getOutputStream();

			int i = 0;
			while ((i=fin.read())!=-1)
			{
				out.write(i);
				out.flush();
			}
			
			System.out.println ("Sent to " +
						client.getInetAddress() + ":" +
						client.getPort());
			client.close();
		}
		catch (IOException ioe)
		{
			System.err.println ("I/O error - " + ioe);
		}
	}
}

⌨️ 快捷键说明

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