Tag: 套接字

需要帮助改进java客户端端口侦听器

我有一小段代码在包含SWING控件的applet中运行,用于将信息写入某个端口上的套接字,然后侦听响应。 这工作正常,但它有一个问题。 端口侦听器基本上处于循环中,直到服务器收到null。 我希望用户能够在等待服务器响应的同时在applet实例化的GUI中执行其他操作(这可能需要几分钟才能完成)。 我还需要担心服务器和客户端之间的连接断开连接。 但是编写代码的方式,applet似乎会冻结(它实际上处于循环中),直到服务器响应。 如何允许侦听器在后台进行侦听,允许程序中发生其他事情。 我假设我需要使用线程,我确信这个应用程序,它很容易实现,但我缺乏坚实的线程基础阻碍了我。 下面是代码(你可以看到它是多么简单)。 如何改进它以使其做我需要做的事情> public String writePacket(String packet) { /* This method writes the packet to the port – established earlier */ System.out.println(“writing out this packet->”+packet+”<-"); out.println(packet); String thePacket = readPacket(); //where the port listener is invoked. return thePacket; } private String readPacket() { String thePacket =""; String fromServer=""; […]

无法在套接字上使用BufferedReader / Writer发送和接收数据

我正在制作一个客户端 – 服务器应用程序,并使用以下代码来交换服务器和客户端的数据。 服务器的发送和接收代码: public void run() { try { BufferedReader input = new BufferedReader(new InputStreamReader(socketNew.getInputStream())); String message=input.readLine(); while(message.length()!=0) { for(Socket s:socs) //socs is a list containing all the connected sockets { BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); writer.write(message); } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 客户的发送方式: […]

Java绑定exception

什么会导致TCP套接字抛出“java.net.BindException:地址已在使用”,即使重用地址设置为true? 仅当应用程序快速重新启动时才会出现这种情况。 在CentOS 5 linux OS上运行。

Java – Threads,Swing和ServerSocket

我知道,我知道,到处都有一百万个问题和答案。 关于它的大量详细文章,几种类型的例子。 过去几个小时我一直在阅读它,但这并没有成功。 我问这个的原因是因为我仍然不明白我需要做什么显然是因为我的代码仍然无效。 我知道Swing如何与EDT一起工作,如果我要使用ServerSocket的accept()方法,我将需要为Swing启动一个新线程(我想?)。 当我运行我的代码时,窗口就会打开并冻结。 我的问题是,有人可以看看我的代码,告诉我我做错了什么,并向我解释,就像我只有半个脑子一样? (因为那就是我的感受。:P) 以下是我已经读过的一些地方: 来自SO的这个问题。 这个网站。 当然还有Oracle对swing和thread的解释。 以及其他一些随机网站。 Main.class package com.sever.core; import java.io.IOException; import java.net.Socket; import java.util.Scanner; import javax.swing.SwingUtilities; public class Main { private SocketManager network; public static void main(String[] args){ SwingUtilities.invokeLater(new Runnable(){ @Override public void run() { Window window = new Window(); window.setVisible(true); } }); SwingUtilities.invokeLater(new Runnable(){ @Override public […]

Java套接字。 服务器 – 客户端通信

我试图用gui连接一个客户端和一个没有gui的服务器。 正在进行连接,但我无法看到这两个应用之间的任何消息。 (我应该在客户端获取SERVER,在服务器中获取客户端) 客户端连接代码: @Override public void ClientRunning(){ try { connectToServer(); setStreams(); ClientRun(); }catch(EOFException oefException){ showMessage(“\n Client terminated the connection\n”); }catch(IOException ioException){ ioException.printStackTrace(); }finally{ close(); } } public void connectToServer() throws IOException{ showMessage(“Attempting Connection… \n”); connection = new Socket(InetAddress.getByName(serverIP),6789); showMessage(“Connected to: “+ connection.getInetAddress().getHostName()); } public void setStreams() throws IOException{ output = new PrintWriter(connection.getOutputStream(),true); output.flush(); input= […]

Java套接字:检查客户端是否能够从服务器接收消息

当我从服务器的OutputStream flush()消息时,客户端是否收到消息(如果在超时之前断开连接)。 我需要以某种方式从服务器端控制这种情况,我必须知道客户端是否能够在发送之前接收消息。 怎么做?

套接字multithreading – 读取输入流暂停线程

我正在测试本地机器上的套接字。 我正在尝试使用线程在一个程序中运行套接字和服务器。 我的服务器是一个echo服务器,因此它会发回它收到的任何消息。 我的问题是,当我在客户端和服务器上启动两个线程时,当它们到达我从输入流中读取的部分时,它们会“冻结”。 它适用于客户端发送消息的部分。 之后,它只是停止,因为看起来客户端正在等待消息,即使我已经通过写入输出流向服务器发送了消息,服务器也是如此。 代码有什么问题? Client.java @Override public void run() { try { Socket socket = new Socket(“localhost”, 22600); BufferedReader br = new BufferedReader(new InputStreamReader( socket.getInputStream())); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( socket.getOutputStream())); BufferedReader input = new BufferedReader(new InputStreamReader( System.in)); System.out.println(“Client 1”); while (true) { System.out.print(“\nEnter text : “); String inputText = input.readLine(); […]

检测连接到我的网络的设备

我需要Java代码来检测当前连接到我的网络的设备。 我尝试了以下想法: – 为所有可能的地址检查此地址是否已连接(254循环) – 为了加快此过程,我为每个检查创建了一个线程,使它们并行运行 有没有更有效率的方法?

简单的webservice示例tomEE无法正常工作

我正在尝试从tomEE部署简单的WS示例: http ://openejb.apache.org/examples-trunk/simple-webservice/ 由于没有什么特别之处,我会详细说明我的所作所为。 也许有人看到我做错了什么: 机器:Win7,Eclipse,服务器:tomEE + 创建运行时目标的新动态Web项目= tomcat tomEE服务器 在/ src中创建了新的包,并在那里添加了3个类: Calculator , CalculatorWS , CalculatorTest 。 -rightclick项目>运行方式>在服务器上运行>选择tomEE。 服务器启动,启动http://127.0.0.1:8080/testproject 这导致404,因为我还没有设置任何jsf页面。 无论如何,转到http://localhost:8080/testproject/Calculator?wsdl或http://localhost:8080/testproject/webservices/Calculator?wsdl如示例所示,我也找不到404。 显然Web服务没有部署? 这个基本而简单的例子有什么问题?

Java socket问题半关闭

我正在使用JDK 1.3(BD-J平台)使用tcp套接字。 我似乎在客户端收到一些错误。 如果我已完成写入并关闭较低的套接字输出流,我似乎尝试从服务器端读取exception(大多数消息如果没有关闭则通过),但是当它关​​闭时我遇到了麻烦。 尝试使用服务器进行调试,即使套接字关闭,我也不应该读取客户端发送的所有内容吗? 只需在服务器端使用低套接字输入流。 如果我正常运行它得到大多数消息,尝试在调试器中运行服务器我得到1消息然后一个Socketexception连接重置。 以下是客户端部分代码如何发送消息,然后在完成写入时关闭,等待所有输入完成然后完全关闭套接字。 http://pastie.org/private/cwc5uijl1x2ndwjwsun4lg 真的很沮丧,我找不到问题