【问题标题】:Sending string through socket is getting null error in catch statement通过套接字发送字符串在 catch 语句中出现空错误
【发布时间】:2015-04-24 19:12:01
【问题描述】:

我正在编写一个简单的 RSA 加密程序,它将通过套接字发送编码消息,但我在输出流上遇到错误。我不知道该类是否正确传递了字符串,或者输出流是否不起作用。

import java.util.*;
import java.lang.*;
import java.io.*;
import java.net.*;

public class connect{

    public static Socket socket;

    public connect(Socket t)
    {
        t = socket;
    }


    public void send(String msg)
    {
        try
        {
            OutputStream os = socket.getOutputStream();
            PrintStream out = new PrintStream(os);
            out.print(msg);
            out.flush();


        }catch(Exception e){System.out.println("Error on send : " + e.getMessage());}
    }
}

【问题讨论】:

  • 异常的堆栈跟踪是什么?
  • 一个观察:注意套接字变量在这里是静态的。一旦你有多个连接,这可能会导致严重的错误......
  • 旁注:RSA 更常用于为另一种算法(例如 AES)或签名加密密钥,而不是用于加密大量数据
  • 大量我的意思是大于 RSA 密钥大小 (more details here)。

标签: java sockets tcp null


【解决方案1】:

不应该是connect方法中的socket = t吗?

【讨论】:

    【解决方案2】:

    您的socket 为空,

    在你的构造函数中

    public connect(Socket t)
    {
        t = socket;
    }
    

    您将传递的值 t 设置为等于 socket,您需要以其他方式执行此操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多