首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对笔记本电脑进行安全的套接字通信

如何对笔记本电脑进行安全的套接字通信
EN

Stack Overflow用户
提问于 2011-07-21 19:53:47
回答 2查看 1.5K关注 0票数 2

可能重复: 如何进行ssl套接字编程

我做的通信从安卓作为客户端,笔记本电脑作为服务器,通过套接字使用无线router.But,如果我想要进行安全的通信。这是我在eclipse中的android代码

代码语言:javascript
复制
public class TCPClient implements Runnable {

    public void run() {

     try {

         InetAddress serverAddr = InetAddress.getByName("192.168.1.2");

             Log.d("TCP", "C: Connecting...");

             Socket socket = new Socket(serverAddr,12345);

             String message = "Hello from Client android emulator";
              try {

                     Log.d("TCP", "C: Sending: '" + message + "'");

                     PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);

                     out.println(message);

                     Log.d("TCP", "C: Sent.");

                 Log.d("TCP", "C: Done.");



         } catch(Exception e) {

             Log.e("TCP", "S: Error", e);
                 } finally {

                    socket.close();

                  }
     } catch (Exception e) {

          Log.e("TCP", "C: Error", e);

     }

}

}

下面是Netbean中的服务器代码,它正在与android进行工作和通信。我要做什么改变?

代码语言:javascript
复制
public class TCPDesktopServer implements Runnable{



public static final String SERVERIP = "10.0.2.15";

public static final int SERVERPORT = 12345;



public void run() {

     try {

        System.out.println("S: Connecting...");

        ServerSocket serverSocket = new ServerSocket(SERVERPORT);

         while (true) {

             Socket client = serverSocket.accept();

             System.out.println("S: Receiving...");

             try {
                  BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

                  String str = in.readLine();

                  System.out.println("S: Received: '" + str + "'");
             } catch(Exception e) {

                    System.out.println("S: Error");

                    e.printStackTrace();

             } finally {
                    client.close();
                    System.out.println("S: Done.");
                }
         }

     } catch (Exception e) {

         System.out.println("S: Error");

         e.printStackTrace();
     }
}

public static void main (String a[]) {

    Thread desktopServerThread = new Thread(new TCPDesktopServer());

    desktopServerThread.start();

}

}

EN

回答 2

Stack Overflow用户

发布于 2011-07-21 20:40:47

似乎您需要使用javax.crypto.CipherOutputStream/CipherInputStream,,或者如果您想要一种更标准化的方法,您可以尝试Apache的基本实现。

票数 0
EN

Stack Overflow用户

发布于 2011-07-22 00:21:39

您可以非常容易地使用SSLSocket类,它是基本java发行版的一部分。如果您在获得要验证的证书时遇到问题,可以使用教程向您展示如何允许自签名证书和不匹配的主机名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6781923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档