如何让客户端为每个其他客户端创建一个套接字

我需要帮助思考客户连接并与所有其他客户进行通信的设计。 我认为每个客户端将同时需要一个ServerSocket来监听来自其他客户端的传入连接,以及一个Socket用于启动与其他客户端的连接。 我在localhost上测试,所以如果我使用端口号来跟踪连接,我会遇到这种情况: Socket A (OS assigned port: a) initiates connection with ServerSocket B (known port: 2222) Both clients record that connection (a, 2222) is made Socket B (OS assigned port: b) initiates connection with ServerSocket A (known port: 1111) Both clients record that connection (b, 1111) is made 我们每对客户端应该有1个连接,所以上面是浪费。 这就是我为什么要设置自己设置本地端口的原因:场景将改为连接(1111,2222)和(2222,1111),并且因为第二个是相同的,所以不保留。 这听起来合理吗?

XLConnect Java虚拟机内存不足错误

我知道这个问题曾多次访问过,但我没有找到解决问题的方法: 我保留了1024 MB的虚拟机 > options(java.parameters =“ – Xmx1024m”) >图书馆(XLConnect) xlcMemoryReport只找到大约15 MB,xlcFreeMemory没有帮助(实际上有时会进一步减少可用内存) > xlcMemoryReport() Java虚拟机(JVM)中的可用内存量:14.79472 MB > xlcFreeMemory() > xlcMemoryReport() Java虚拟机(JVM)中的可用内存量:15.05308 MB 当我尝试加载26 MB文件时,它失败了,但实际上释放了内存: > res < – readWorksheet(loadWorkbook(“bigFile.xlsx”),sheet = 1) 在为函数’readWorksheet’选择方法时评估参数’object’时出错:Error:OutOfMemoryError(Java):Java堆空间 > xlcMemoryReport() Java虚拟机(JVM)中的可用内存量:947.3003 MB > res < – readWorksheet(loadWorkbook(“bigFile.xlsx”),sheet = 1) 在为函数’readWorksheet’选择方法时评估参数’object’时出错:Error:OutOfMemoryError(Java):Java堆空间 > xlcMemoryReport() Java虚拟机(JVM)中的可用内存量:936.7464 MB 为什么xlcMemoryReport最初没有找到保留的内存,但是在我尝试读取文件后找到它? 是否有可能> 900 MB不足以使XLConnect加载26 MB文件? 知道如何让这个工作吗? (当然我可以使用CSV文件,但这给我的用户带来了不便)

使JFormattedTextField的行为类似于ATM输入

我想知道是否有一个JformattedTextField或jtextField表现得像一个atm money输入。 我的意思是你从右到左进入,比如说你输入10你需要再按2个0,这样它就是10.00。 程序从右到左自动输入小数点? 如果未输入2 0,则仅为.10。 这可能吗? 如果我想使用该字符串进行计算,那将如何返回给我? 我尝试了抽象格式化程序,但这样做不太好。 我想用它来输入客户收到的金额。 但要做到白痴certificate。

maven start postgres服务器

我正在为学校做一个项目,需要在maven项目中用postgresql替换hsqldb。 目前我们通过运行启动hsql Server mvn exec:java -P hsqldb 据我所知,这会查找pom.xml中的hsqldb配置文件 hsqldb org.codehaus.mojo exec-maven-plugin 1.2.1 java org.hsqldb.server.Server -database.0 db/name -dbname.0 name 所以我需要使用postgres设置重新发布这部分,我已经添加了postgres作为依赖。 ServerClass 是我最大的问题,因为我无法在postgresql jar中找到主服务器类

如何将补码数转换成2补码?

给定:String的forms的二进制数。将其转换为2的补码forms 例: 输入: 00000101 输出: 11111011 我知道如何将二进制数转换为1的恭维forms。 但我无法转换为2补充forms。 例如: GivenString:111 1s赞美000 如何编码1:在1的补码和1 + 1 = 1中加“1”? MyCodeFor 1s赞美: public static String complimentDecimal(String strnew) { //Replace the 0s with 1s and 1s with 0s StringBuilder sb = new StringBuilder(); for(int j=0;j<strnew.length();j++) { if(strnew.charAt(j)=='0') sb.append("1"); else if(strnew.charAt(j)=='1') sb.append("0"); } String s1 = sb.toString(); }

多节点hadoop集群中的Apache Spark Sql问题

嗨,我使用Spark java apis从hive获取数据。 此代码适用于hadoop单节点集群。 但是当我尝试在hadoop多节点集群中使用它时,它会抛出错误 org.apache.spark.SparkException: Detected yarn-cluster mode, but isn’t running on a cluster. Deployment to YARN is not supported directly by SparkContext. Please use spark-submit. 注意:我已将master作为本地用于单节点,而yarn-cluster用于多节点。 这是我的java代码 SparkConf sparkConf = new SparkConf().setAppName(“Hive”).setMaster(“yarn-cluster”); JavaSparkContext ctx = new JavaSparkContext(sparkConf); HiveContext sqlContext = new HiveContext(ctx.sc()); org.apache.spark.sql.Row[] result = sqlContext.sql(“Select * from Tablename”).collect(); 此外,我试图将master更改为本地,现在它抛出未知的主机名exception。 任何人都可以帮助我吗? 更新 错误日志 […]

如何在JTextField中禁用默认文本字段快捷方式

我有一个自定义文本域类,它扩展了Swing中的JTextField类。 我需要找到一种方法来禁用Ctrl-A(全选),Ctrl-H(退格键等)的默认操作,以便包含文本字段的窗口可以将这些快捷方式映射到它想要的任何内容。 任何帮助将不胜感激。

Java 6,JFrame卡住了alwaysontop

这个问题似乎只发生在我从1.5升级到1.6之后 主JFrame,随机似乎陷入了Windows中其他所有应用程序的面前。 甚至另一个JDialog弹出设置为alwaysontop(true)将在这个主要的JFrame背后。 关于什么可能导致这个问题的任何想法? /任何解决方案的想法? 从来没有在Java 5上遇到过这个问题。

在BackingBean中将没有变量的值从表单提交到方法

我有一个简单的表单,用户输入他的用户名和密码,在bean中检查值是否正确。 .xhtml fooBean public void check() { if(username == “name” && password == “pass”) { // do stuff } } 现在我的问题是,是否有办法将inputTexts的值提交给函数check(String username, String password) ,而不必声明bean中的字段。

增量索引lucene

我正在使用Lucene 3.6在Java中创建应用程序,并希望提高增量率。 我已经创建了索引,我读到你要做的就是打开现有的索引,并检查每个文档的索引和文档修改日期,看它们是否不同删除索引文件并重新添加。 我的问题是我不知道如何在Java Lucene中这样做。 谢谢 我的代码是: public static void main(String[] args) throws CorruptIndexException, LockObtainFailedException, IOException { File docDir = new File(“D:\\PRUEBASLUCENE”); File indexDir = new File(“C:\\PRUEBA”); Directory fsDir = FSDirectory.open(indexDir); Analyzer an = new StandardAnalyzer(Version.LUCENE_36); IndexWriter indexWriter = new IndexWriter(fsDir,an,MaxFieldLength.UNLIMITED); long numChars = 0L; for (File f : docDir.listFiles()) { String fileName = f.getName(); […]