老师,我想问一下,客户端的connect()方法会跟服务端建立连接,前提是服务端已经bind并且开启了sccept;那么客户端的bind()有什么作用呢
来源:4-6 案例实操-TCP传输初始化配置-2
好多个胖子
2019-06-19
Socket socket = new Socket();
socket.setReuseAddress(true);
//这一步有什么作用呢
socket.bind(new InetSocketAddress(“127.0.0.1”,5000));
//与服务器建立连接
socket.connect(new InetSocketAddress(“127.0.0.1”, 9999));
写回答
1回答
-
关于为什么回答问题不及时的原因:http://www.imooc.com/article/288131
当我们链接到服务器的时候,客户端会随机分配一个可用的端口的;我们说过几个基本要素可以组合一个Socket链接:
服务器地址、服务器端口、客户端地址、客户端端口。
如果我们在链接服务器之前先在客户端调用了bind,那么客户端和服务器的链接端口就是固定的了。
一般来说
服务器的地址是:xxx.xxx.xxx.xxx:2000 客户端的地址是:xxx.xxx.xxx.xxx:52321
52321 是一个随机的,每次都可能不同;但是我们可以通过bind,比如绑定到客户端3000上,然后链接:
服务器xxx.xxx.xxx.xxx:2000 ---- 客户端xxx.xxx.xxx.xxx:3000
这样每次链接客户端的地址都不变了。
212019-06-20
相似问题