java - 我应该使用什么端口将文件写入服务器上的文件?使用套接字

标签 java

使用套接字与我的学校 Linux 服务器帐户建立连接。主要思想是,连接到服务器并将文本从桌面写入服务器上的现有文件。
我只能找到如何将数据从服务器发送到桌面的 Java 文档示例,我不确定它们是否相同。


对计算机网络了解不够,所以不确定

1 将什么值传递给构造函数 Socket(String host, int port)
主机名是 host = "myaccount@myserver.com" 还是 host = "myserver.com"

2 我应该使用什么端口将字符串/文本数据传输到服务器上的文件?

最佳答案

这是一个简单的java文件传输

服务器

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Main {
  public static void main(String[] args) throws IOException {
    ServerSocket servsock = new ServerSocket(12345);
    File myFile = new File("freeman.txt");
    while (true) {
      Socket sock = servsock.accept();
      byte[] mybytearray = new byte[(int) myFile.length()];
      BufferedInputStream bis = new BufferedInputStream(new FileInputStream(myFile));
      bis.read(mybytearray, 0, mybytearray.length);
      OutputStream os = sock.getOutputStream();
      os.write(mybytearray, 0, mybytearray.length);
      os.flush();
      sock.close();
    }
  }
}

客户端

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.Socket;

public class Main {
  public static void main(String[] argv) throws Exception {
    Socket sock = new Socket("127.0.0.1", 12345);
    byte[] mybytearray = new byte[1024];
    InputStream is = sock.getInputStream();
    FileOutputStream fos = new FileOutputStream("freeman.txt");
    BufferedOutputStream bos = new BufferedOutputStream(fos);
    int bytesRead = is.read(mybytearray, 0, mybytearray.length);
    bos.write(mybytearray, 0, bytesRead);
    bos.close();
    sock.close();
  }
}

正如您所看到的,您可以编写服务器,例如 myserver.com,而不是 127.0.0.1(localhost),并且您可以添加端口

关于java - 我应该使用什么端口将文件写入服务器上的文件?使用套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42044034/

相关文章:

Java arraylist 检索数据最小/最大值

java - 自定义适配器中的 "Variable is accessed from within inner class, needs to be declared final"错误

java - 代号 一个事件在包含更多子容器的容器中监听

java - 如何在java中编写组合和聚合

java - JFrame关闭时如何刷新文本字段的值

java - 什么是 "allocation pools for temporary objects"?

java - 从处理程序获取结果的最佳方式

java - 无法在plugins {} block 中使用 'jsonschema2pojo' gradle插件?

java - Resilience4j.retry 异常不起作用

java - 从包名中获取应用程序名