Tag: 套接字

线程“main”java.net.ConnectException中的exception:连接被拒绝:连接

我正在尝试使用套接字连接并使用netbeans在我的Windows 7中发送文件,但是我收到此错误: Exception in thread “main” java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at java.net.Socket.(Socket.java:425) at java.net.Socket.(Socket.java:208) at socket.TCPclient.main(TCPclient.java:22) Java Result: 1 这是我的服务器类: package socket; import java.net.*; import java.io.*; public class TCPserver { public static void main (String [] […]

使用ColdFusion进行简单的TCP / IP套接字通信

我已经做了一些搜索,似乎并没有通过Coldfusion成功建立tcp / ip套接字连接的成功方式。 我正在尝试充当一个简单的客户端并发送一个字符串并获得响应。 Adobe的EventGateway需要服务器端设置,我无法触及,但也似乎只是一个监听器(根据Adobe的文档,“它可以向现有客户端发送传出消息,但不能自己建立链接。”)。 在SO / cflib.org上有另一个例子,它是通过Web调用Java对象的主流post,但是我没有成功使用它,而且似乎其他所有人都有一些麻烦。 在我的尝试中,我可以让它初始化/连接套接字,但没有别的。 如果我尝试发送字符串,CF页面加载正常,但服务器端似乎永远不会看到任何东西(但会记录或记录连接/断开连接)。 如果我尝试读取响应,页面将永远不会加载。 如果我在尝试时关闭服务器,它将在尝试readLine()时显示连接重置。 我尝试使用内部应用程序以及简单的Java套接字侦听器,它将在连接上发送消息,并应回显发送的任何内容。 这不是CF的工作吗? 如果没有,来自jQuery / Ajax领域的任何其他简单建议/示例? Java监听器应用程序: package blah; import java.awt.Color; import java.awt.BorderLayout; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.net.*; class SocketServer extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 1L; JButton button; JLabel label = new […]

虽然Socket无法连接,但它不会抛出exception

我正在尝试将套接字连接到不存在的服务器,我真的不明白为什么没有引发exception。 这是我的代码: public class TestSocket extends Activity { private static final String TAG = “TestSocket”; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); BasicThread t = new BasicThread(); t.start(); } class BasicThread extends Thread { @Override public void run() { Log.d(TAG, “Before”); try { new Socket(“42.42.42.42”, 12345); Log.d(TAG, “Connected”); } catch (Exception e) { Log.d(TAG, “Exception”); […]

Java中的套接字和进程

在Java中,最好的方法是打开一个持续监听的端口,并在收到数据包后仍然发送。 我目前对网络编程并不是特别精明,所以我在网上找到的教程并不是特别有用。 将侦听套接字作为serversocket并将其在一个单独的线程中运行到我用于将数据发送到服务器的套接字是否有意义? 在一个松散相关的问题。 有没有人知道如果编程只是为了java,在netbeans然后导出它用于黑莓(使用插件)套接字仍然可以工作?

如果端口对多播组无关紧要,为什么DatagramSocket.joinGroup()方法采用SocketAddress?

我只是好奇。 这是API错误吗? 加入组播组时,不要使用端口,只使用组播组(IP)作为组播组,对吗? 这是一个令人烦恼的情况,是否会使用PORT?

Java TCP / IP套接字如何报告应用程序的传输成功或失败?

我遇到了Java TCP / IP套接字的问题:我的Java应用程序将无休止地继续将数据发送到服务器,即使服务器在此期间关闭(没有正确的TCP / IP断开连接)。 我使用以下代码发送数据: PrintWriter out = PrintWriter(socket.getOutputStream(), true); out.write(“text”); if (out.checkError()) { System.err.println(“Error sending string!”); } 在另一个Stack Overflow问题中 ,我找到了以下答案: TCP / IP(及其java套接字)将保证您成功发送数据或最终获得错误(在java的情况下例外)。 我的代码是否足以让我们了解TCP / IP堆栈无法成功发送我的字符串或我是否需要另外做一些事情? 顺便说一句:即使另一个问题相似,打开一个新问题是否正确? 它没有令人满意地回答我的问题,我只能添加一个新的答案,而不是一个新的评论。

套接字关闭问题 – 最后一部分数据丢失

我有一个Java程序接受连接,接收HTTP请求并发送HTTP回复和一些存储在文件中的数据(这是缓存代理的一部分)。 删除所有不相关的内容,我的代码如下所示: FileInputStream fileInputStream = new FileInputStream(file); OutputStream outputStream = socket.getOutputStream(); byte[] buf = new byte[BUFFER_SIZE]; int len = 0; while ((len = fileInputStream.read(buf)) > 0) { outputStream.write(buf, 0, len); } outputStream.flush(); socket.close(); 此代码在每个连接的客户端的特定线程中执行。 当我处理小文件(.htm,.gif,.swf等)时,一切正常(但是,我没有看到浏览器中的任何错误)。 但是当我下载大文件(.iso),特别是同时下载几个文件时,当系统处于负载状态时,有时我会得到非常奇怪的行为。 浏览器下载99.99%的文件,当下载的字节少于BUFFER_SIZE时,下载会停止几秒钟,然后浏览器会说错误已经发生。 我无法理解会发生什么,因为所有数据都已成功读取,甚至所有数据都成功写入outputStream。 正如你所看到的,我甚至做了flush(),但它没有结果。 有谁能解释一下会发生什么? 编辑 将项目上传到filehosting.org。 下载源文件 。 有zip源存档,包含源代码,Build.xml和Readme.txt。 使用ant构建解决方案。 在ClientManager.java中发生了所描述的问题,您可以在那里找到评论。

设置readLine()的超时限制?

我有以下代码通过Java中的套接字读取POP服务器的响应。 但问题有时候,当我使用readLine()函数从服务器读取,如果服务器没有回复任何响应,我的应用程序将挂起,等待服务器的响应。 socket.connect(new InetSocketAddress(“pop.server.com”, 110), 3000); input = socket.getInputStream(); BufferedReader incoming = new BufferedReader(new InputStreamReader(input)); incoming.readLine(); //This line will cause my application to hang if the server does not respond with a reply 有没有办法设置超时或其他一些方法,当服务器在一段时间后没有回复时,应用程序应该停止等待响应并继续其他执行?

两分钟后sockets时间虽然超过两分钟

在这篇文章之后 ,我遇到了同样的问题,我设法通过一个简单的测试来重现它。 我希望你能帮助我。 让我解释一下,我正在使用套接字发送消息。 只要我将so_timeout设置为不到两分钟,一切都很好。 但如果我将它设置为超过两分钟,套接字会在两分钟后超时。 因此,如果我将so_timeout设置为10秒,则套接字将在10秒后超时,但如果我将其设置为180秒,套接字将在120秒后超时。 这是一个测试用例: import java.io.*; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketTimeoutException; /** * */ public class TestSocket1 { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(); serverSocket.setReuseAddress(true); serverSocket.bind(new InetSocketAddress(1111), 0); serverSocket.setSoTimeout(1000); Socket socket = null; boolean send = true; while (send) { try […]

使用java nio socket时,“已建立的连接被主机中的软件中止”

我使用java nio套接字开发了一个java服务器。 这是我的应用程序的代码: public class EchoServer { static final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(Main.class); private static final int BUFFER_SIZE = 1024; private final static int DEFAULT_PORT = 4664; private InetAddress hostAddress = null; private int port; private String ipAddress = “my ip”; private Selector selector; // The buffer into which we’ll read data when it’s available […]