Java中,我如何获得一个开放的套接字?我有2个JFrame;在第一个JFrame中,我打开了Client socket的连接.在同一个JFrame中,我创建了另一个JFrame(JFrame2)的实例.现在我想从JFrame1获取相同的Socket到JFrame2继续与我的服务器Socket交谈:

login.java(First JFrame)

try {

cliente = new Socket("localhost", 4444);

salida = new ObjectOutputStream(cliente.getOutputStream());

entrada = new ObjectInputStream(cliente.getInputStream());

} catch (UnknownHostException e) {

System.err.println("Don't know about host: localhost.");

System.exit(1);

} catch (IOException e) {

System.err.println("Couldn't get I/O for the connection to: localhost.");

System.exit(1);

}

login.java(第一个Jframe)

try {

while ((mensaje_entrada=(String)entrada.readObject()) != null) {

try {

me=td.encrypt(mensaje_entrada);

m2=td.decrypt(me);

} catch (Exception ex) {

Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);

}

System.out.println("e:"+ me);

System.out.println("de:"+ m2);

System.out.println(mensaje_entrada);

if(mensaje_entrada.equals("20")){

mensaje_salida=""+txt_usuario.getText()+","+txt_password.getText();

System.out.println(mensaje_salida);

salida.writeObject( mensaje_salida );

salida.flush();

mensaje_entrada=(String)entrada.readObject();

System.out.println(mensaje_entrada);

if(mensaje_entrada.equals("1")){

m.setLocationRelativeTo(null);

m.setVisible(true);

//JOptionPane.showMessageDialog(this,"Funciona!!");

break;

}else if(mensaje_entrada.equals("2")){

JOptionPane.showMessageDialog(this,"Usuario o contraseña incorrecta!","Error!",JOptionPane.ERROR_MESSAGE);

break;

}

}

}

} catch (EOFException ex) { //This exception will be caught when EOF is reached

System.out.println("End of file reached.");

} catch (ClassNotFoundException ex) {

JOptionPane.showMessageDialog(this,ex.getMessage());

} catch (IOException ex) {

JOptionPane.showMessageDialog(this,ex.getMessage());

}

最佳答案 请看一下

Singleton的实现

有了它,您可以从任何地方以优雅的方式访问您的对象,并保证它将被唯一地实例化.

遵循单例方法的简单实现:

package foo.bar;

import java.io.IOException;

import java.net.Socket;

public final class MySingletonSocket extends Socket {

private static Socket clientSocket;

static {

try {

clientSocket = new MySingletonSocket("localhost", 4444);

} catch (Exception e) {

e.printStackTrace();

}

}

private MySingletonSocket(final String address, final int port) throws IOException {

super(address, port);

}

public static final Socket getInstance() {

return clientSocket;

}

}

从JFrame1您可以访问它,如:

MySingletonSocket.getInstance()

从JFrame2,您可以以相同的方式访问它.

java中套接字,如何在java中获得一个开放的套接字?相关推荐

  1. java 线程中创建线程_如何在Java 8中创建线程安全的ConcurrentHashSet?

    java 线程中创建线程 在JDK 8之前,还没有办法在Java中创建大型的线程安全的ConcurrentHashSet. java.util.concurrent包甚至没有一个名为Concurren ...

  2. java 判断是否换行_如何在java中检测换行符

    是的,我已经阅读了一些关于换行符的其他帖子,但他们没有帮助我.如何在java中检测换行符 我的Java程序应该读取一个.PHP文件,并将源代码分成逐行格式.问题是我似乎无法区分一个换行符和另一个换行符 ...

  3. java 中覆 写tostring_如何在Java中正确覆盖toString()?

    如何在Java中正确覆盖toString()? 听起来有点愚蠢,但我需要帮助我的toString()方法,这是非常irking. 我尝试在网上查找,因为toString是搞砸了,"没有找到K ...

  4. java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

    java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...

  5. java整数的因式分解_如何在Java中找到整数的质数-因式分解

    java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...

  6. java如何实取随机数_java - 如何在Kotlin中获取随机数?

    java - 如何在Kotlin中获取随机数? 可以在2个参数之间返回随机整数的通用方法,如ruby,可以使用rand(0..n). 有什么建议吗? 16个解决方案 208 votes 我的建议是In ...

  7. java swing 列表框_如何在Swing中使用列表框?

    下面的示例展示了如何在Java Swing应用程序中使用标准列表框. 使用以下API - JList - 创建标准列表. JList.setSelectedIndex(index); - 选择项目. ...

  8. java中求组快速排序函数,如何在Java中实现快速排序?

    成为专业认证的快速排序是一种分而治之的算法.在分治算法的设计范式中,我们先递归地将问题分解成子问题,然后再求解子问题,最后将求解结果进行组合得到最终结果.在本文中,我们将重点讨论Java中的快速排序本 ...

  9. Java poi 列移动_如何在java xssf中移動列poi

    如何將現有列數據和格式化到Apache POI中的下一列並將下一列移到右側.如何在java xssf中移動列poi 我試過了. 讓說我的代碼是這樣... XSSFCell oldCell = work ...

最新文章

  1. SVM: 实际中使用SVM的一些问题
  2. SAPABAP性能优化技巧—使用二分查找(Binary Search)选项
  3. sqlmap (--os-shell)的使用
  4. 月薪2w的00后女财务,靠这套报表模板征服了老板
  5. NFV-Bench A Dependability Benchmark for Network Function Virtualization Systems
  6. 2013年最新最热播的电影 合集
  7. .Net之美读书笔记15
  8. 品高工作流 - 基于InfoPath的自定义表单设计教程
  9. HTML5模拟衣服撕扯动画
  10. 计算机视觉实战(七)图像金字塔与轮廓检测
  11. C# winform 开发总结 -- 【持续更新】
  12. C#之AutoCAD图层样式定义
  13. CheckBox和ListView的结合使用
  14. K8S使用habor作为私有仓库
  15. 阿里云服务器密码忘了怎么修改
  16. YARN中的任务队列调度器-容量调度器(Capacity Scheduler)
  17. app:processDebugManifest 错误
  18. 金融学经济学字母含义
  19. python棋盘放麦粒_棋盘上的麦粒有什么问题?
  20. [zz]busycai的找工之路

热门文章

  1. 如何安装Gradle
  2. Windows下查看wifi密码的命令
  3. 阿里云服务器如何创建快照备份数据
  4. Linux 脚本文件中开头的#!/bin/bash和#!/bin/sh是什么意思
  5. MacBook/MacOS/Mac OS 关于启动/停止/重启服务(进程/程序)的命令
  6. 【开源项目】Socket服务端与客户端传输视频文件
  7. 老司机找BUG指南,赶紧拿走。。
  8. php实现防止sql注入的通用方法,PHP实现防止sql注入的通用方法
  9. 获取linux详细信息,Linux 获取网口详细信息
  10. html5新变化,HTML5的新变化,分享