1. java中的socket客户端的端口如何绑定
java中的socket客户端只需用服务器所在机器的ip以及服务器的端口作为参数创建一个Socket对象就可以了,客户端的代码可以看下实例:
Socket socket = new Socket("168.160.12.42",9998);
或:
Socket socket = new Socket(InetAddress.getLocalHost(),5678); // 向主机名为InetAddress.getLocalHost()的服务器申请连接
客户机必须知道有关服务器的IP地址,对于着一点Java也提供了一个相关的类InetAddress 该对象的实例必须通过它的静态方法来提供,它的静态方法主要提供了得到本机IP 和通过名字或IP直接得到InetAddress的方法。
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
以上的程序代码建立了一个Socket对象,这个对象连接到ip地址为168.160.12.42的主机上、端口为9998的服务器对象。并且建立了输入流和输出流,分别对应服务器的输出和客户端的写入。
2. java socket通信如何设置连接时长
使用jdk中的setSoTimeout(inttimeout)方法,以毫秒为单位。
参考代码:
SocketAddressaddress=newInetSocketAddress("192.168.0.104",8888);
ServerSockets=newServerSocket();
s.bind(address);
Socketsocket=s.accept();
socket.setSoTimeout(5*1000);//5秒钟
将此选项设为非零的超时值时,在与此Socket关联的InputStream上调用read()将只阻塞此时间长度。
如果超过超时值,将引发java.net.SocketTimeoutException,虽然Socket仍旧有效。选项必须在进入阻塞操作前被启用才能生效。
另外:超时值必须是>0的数。超时值为0被解释为无穷大超时值。