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

📄 servertest.java

📁 这是一个简单的java程序 希望对大家有所帮助
💻 JAVA
字号:
package socket1;

//服务器端
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class ServerTest {
    int port = 8821;
    public void windowClosing(WindowEvent e)
    {
    	System.exit(0);
    	
    }
    void start() {
        Socket s = null;
        Frame f=new Frame("发送对话框");
        FileDialog d1=new FileDialog(f,"选择文件",FileDialog.LOAD);
        d1.getFilenameFilter();
        f.show();
        d1.show();
        
        f.addWindowListener(new WindowAdapter(){
        	public void windowClosing(WindowEvent e)
        	{
        		System.exit(1);//关闭响应
        	}
        });
       
        try {
            ServerSocket ss = new ServerSocket(port);
            while (true) {
                // 选择进行传输的文件
                String filePath =d1.getDirectory()+d1.getFile();
                File fi = new File(filePath);

                System.out.println("文件长度:" + (int) fi.length());

                s = ss.accept();
                System.out.println("建立socket链接");
                DataInputStream dis = new DataInputStream(new BufferedInputStream(s.getInputStream()));
                dis.readByte();

                DataInputStream fis = new DataInputStream(new BufferedInputStream(new FileInputStream(filePath)));
                DataOutputStream ps = new DataOutputStream(s.getOutputStream());
                ps.writeUTF(fi.getName());
                ps.flush();
                ps.writeLong((long) fi.length());
                ps.flush();

                int bufferSize = 8192;
                byte[] buf = new byte[bufferSize];

                while (true) {
                    int read = 0;
                    if (fis != null) {
                        read = fis.read(buf);
                    }

                    if (read == -1) {
                        break;
                    }
                    ps.write(buf, 0, read);
                }
                ps.flush();                
                fis.close();
                s.close();                
                System.out.println("文件传输完成");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

public static void main(String arg[]) {
        new ServerTest().start();
    }
}

⌨️ 快捷键说明

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