HI,现在,有一个java socket的问题求助。
因为有墙的缘故,这个java socket客户端应用只能
指定一个端口。那么,如何在保证发送大量数据的前提
下,完成这个实现呢。查了一下java api文档:
据说使用如下原型可以达到指定本地端口的目的
Socket(String host, int port, InetAddress localAddr, int localPort) // localhost 8081 
结果报异常network unreachable于是,又尝试在客户端用bind
socket也设置成reuseAddress
结果报异常java.net.SocketException: Already bound请指点,谢谢先。:D
yalong

解决方案 »

  1.   

    Already bound,你换一个端口试试
      

  2.   

    谢楼上两位回复。
    因为有墙的缘故(端口开放有限),所以这个客户端应用
    只能用一个端口。奇怪的是,我通过netstat -an并未发现8081有被占用。
      

  3.   

    汗,解决了。
    先bind后connect。
    出现端口被占用的情况是因为socket(ip. port)的时候已经随机
    分配了一个端口,所以再次bind的时候就already bound了。
    把socket(ip, port)改成 socket()再bind, connect就好了。
      

  4.   

    这样是可以。
    其实你顶楼的做法应该也是可以的,

    new Socket("server_IP", xxxx , InetAddress.getLocalHost(), 8081);