2013-12-08 70 views
0

我是新来的Java,但不是新的编程;自DOS以来,我一直在计算机周围。java socket听不接受连接?

我想写一个简单的网络代理,我想监听传入的连接请求,但我不想接受请求,因为客户端会立即发送数据。我希望代理在接受连接之前尝试成功打开到预配置目标的连接,并在无法到达目的地时断开连接。

这是可能的在VB6的方式回来时,我相信有可能在C#中使用事件做到这一点,但问题是代理机器是unix,我只是不觉得受虐狂足以在C++中写任何东西只为一个系统。

任何人有任何想法如何做到这一点,或至少是一个kludge模拟这样的事情? 我看到的文章here太含糊,似乎已经过时,因为oracle文档似乎重定向到了不同的页面。

+0

客户端可以在接受连接之前发送数据。它的很多,直到你的套接字接收缓冲区的大小。你的问题是基于错误的前提。 – EJP

回答

-2

这在Java中是不可能的。套接字库写入的方式无法接受传入连接的详细信息。

您提供的链接只会在接受它们之前拒绝连接,但我认为它不允许您使用SecurityManager拒绝的连接。

在接受连接之前是否可以打开到目的地的连接,那么只有在连接打开到目的地时才能接受?

+0

如果在设定的时间内没有收到数据,目标服务器将丢弃该连接,因此我无法抢先打开连接。 – Xyphos

+0

我可以接受连接,然后尝试连接到目标服务器,但我不确定如何处理客户端,如果目标无法连接到。我想一个简单的套接字就足够了,但客户端可能会吓坏了。 – Xyphos

+0

服务器将如何知道要连接到什么?为什么客户端应该提供一个监听套接字?和一个开放的防火墙端口?答案没有多大意义。不是这个问题也没有。 – EJP