使用控制台Web GUI通过grails中的套接字发送对象

时间:2014-01-22 09:42:22

标签: java sockets grails

我在两台主机中有两台应用服务器。每个主机都有一个本地地址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)

1 个答案:

答案 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