我在两台主机中有两台应用服务器。每个主机都有一个本地地址IP(172.x.x.x)
我想使用Java套接字将对象从172.x.x.x:8080发送到172.y.y.y:8080
服务器端(172.x.x.x:8080)
def myObject="Mar7ben bil World"
ServerSocket ss = new ServerSocket(8080);
Socket socket = ss.accept();
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
out.writeObject(myObject);
out.close();
客户端(172.y.y.y:8080)
Socket socket = new Socket('172.x.x.x',8080);
ObjectInputStream inp = new ObjectInputStream(socket.getInputStream());
Object o = inp.readObject();
obj= o;
inp.close();
socket.close();
当我在控制台上运行server side
的代码时,我收到以下错误消息:
http://172.x.x.x:8080/myApp/console
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
at java.net.ServerSocket.<init>(ServerSocket.java:194)
at java.net.ServerSocket.<init>(ServerSocket.java:106)
答案 0 :(得分:0)
你的Grails app听8080端口(http://172.x.x.x:8080/myApp/console)。您必须将服务器端端口更改为其他内容,例如8081。
P.S。 808x
端口通常用于HTTP服务。如果您没有制作HTTP服务器,最好选择其他端口。请参阅众所周知的端口列表:http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers#Well-known_ports