⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientsocket.java

📁 利用socket实现数据传输。java实现。具体运行看说明文档。
💻 JAVA
字号:
import java.net.*;
import java.io.*;


public class ClientSocket 
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader scanin=new BufferedReader(new InputStreamReader(System.in));//get from keyboard
		System.out.println("please input the IpAddress to communicate(for instance:127.0.0.1):");
		String IPAddress = scanin.readLine();
		InetAddress addr= InetAddress.getByName(IPAddress);
		System.out.println("addr="+addr);
		Socket socket=new Socket(addr,8080);//port may be changed to "8080"
		try
		{
			System.out.println(" socket="+socket);
			
			
			//socket
			BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
			PrintWriter out=new PrintWriter(new BufferedWriter (new OutputStreamWriter(socket.getOutputStream())),true);
			
			System.out.println(" =======注意:本实验适合于txt文件的上传和下载.=====");
			//choose option
			System.out.println("======== 》请选择: 1 ---> 上传  ;  0 ---> 下载 :");
			String choice = scanin.readLine();		
			while(choice.compareTo("1")!=0&&choice.compareTo("0")!=0)
			{
				System.out.println("操作错误.");
				System.out.println("请选择: 1 ---> 上传  ;  0 ---> 下载 :");
			    choice = scanin.readLine();
			}
			
			out.println(choice);//send the choice to the server.
			
			//send file to server.
			if(choice.compareTo("1")==0)//上传
			{
			     //file
				System.out.println(" ===》请输入要上传的文件名(包含文件路径)");
			    String file_name = scanin.readLine();
				InputStream is = new FileInputStream(file_name);
				BufferedReader reader_file = new BufferedReader(new InputStreamReader(is));
				
				String line;// 用来保存每行读取的内容
            	line = reader_file.readLine();
            	while(line!=null)
            	{
            		out.println(line);//send
            		line = reader_file.readLine();
            	}
            	reader_file.close();	
            	out.close();
            	System.out.println("ok");
            }
            
            //download file from server.
            else if(choice.compareTo("0")==0)//下载
            {
            		System.out.println("服务器端可供下载的文件有:");
            		String file_indir;
  					file_indir=in.readLine(); 
  					
  					while(file_indir.compareTo("end")!=0)
  					{
  						//list the files for download
  						System.out.println(file_indir);
  						file_indir = in.readLine();
  					} 
            		
            		System.out.println(" ===》请输入要下载的文件名");
			    	String downloadfile_name = scanin.readLine();
			    	out.println(downloadfile_name);
			    	
			    	System.out.println(" ===》请输入保存下载文件的新文件名");
			    	String file_name = scanin.readLine();
            		OutputStream file_out = new FileOutputStream(file_name);
  					BufferedWriter writer_file = new BufferedWriter(new OutputStreamWriter(file_out));
  					
  					String line;
  					line=in.readLine();  
  					
  					while(line!=null)
  					{
  						writer_file.write(line);
  						writer_file.newLine();
  						line = in.readLine();
  					} 
  					writer_file.close();
  					System.out.println("OK!");
            }
            
		}
		finally
		{
			System.out.println("close....");
			socket.close();
		}
	}
	

}

⌨️ 快捷键说明

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