Java, как указать правильный IP-адрес, с которого программа должна подключиться - PullRequest
1 голос
/ 24 февраля 2011

У меня есть Java-программа (свинг), которая подключается к удаленному хосту. Эта программа прекрасно работала на моем компьютере с Windows 7. Однако после того, как я установил VirtualBox, он не смог подключиться к удаленной коробке; В ходе расследования мы обнаружили, что он начал «привязывать» себя к IP-адресу VirtualBox, а не к «беспроводному сетевому соединению адаптера беспроводной сети», как это было ранее.

Я написал тестовую программу, которая подключалась к тому же удаленному хосту, и эта программа работала нормально, несмотря на Virtual Box.

public static void main(String[] args) throws UnknownHostException, IOException {
    Socket testSock = new Socket("10.86.149.206", 7547);
    System.out.println("connected!");
}

Вопрос: Как мне сообщить java swing программе, какой IP-адрес должен использоваться в качестве IP-адреса источника?

для чего это стоит, мы используем JDK 1,6

ОБНОВЛЕНИЕ :
В конце концов мне пришлось удалить VirtualBox, чтобы программа Java Swing могла подключаться к удаленному хосту: - (

ОБНОВЛЕНИЕ 2 :
Мне было интересно, могу ли я указать системное свойство, чтобы java-программа знала, что делать.

ОБНОВЛЕНИЕ 3 :
на случай, если кому-то интересно, у меня нет доступа к исходному коду свинг-программы. Я хотел бы регулировать его поведение внешне, если это возможно. **

Ответы [ 3 ]

2 голосов
/ 24 февраля 2011

Socket contructor поддерживает версию с четырьмя параметрами, где вы также можете указать локальный адрес и порт.Подробнее см. java.net.Socket .

0 голосов
/ 24 февраля 2011

Если вы хотите использовать определенный локальный IP-адрес для подключения к серверу, вы должны вызвать метод bind и в качестве параметра передать этот адрес.

0 голосов
/ 24 февраля 2011
...