java – 创建新Socket时添加超时
发布时间:2020-05-24 18:51:09 所属栏目:Java 来源:互联网
导读:我有一个带DHCP的本地网络和几台PC.其中一个应该是我的服务器并自动连接到所有其他(客户端).我的想法是这样的: 首先,我在每个从服务器(SClient)监听客户端程序的客户端(CServer)上创建一个服务器.当SClient连接到CServer时,SClient向CServer发送他的IP,因此
|
我有一个带DHCP的本地网络和几台PC.其中一个应该是我的服务器并自动连接到所有其他(客户端).我的想法是这样的:
import java.lang.*;
import java.io.*;
import java.net.*;
class SClient {
public SClient() {
for(int i = 120; i < 125; i++){
try{
InetAddress addr = InetAddress.getLocalHost();
String addrs = addr+"";
String ip = addrs.substring(addrs.indexOf("/")+1);
Socket s1 = new Socket("192.168.1." + i,1254);
OutputStream s1out = s1.getOutputStream();
DataOutputStream dos = new DataOutputStream (s1out);
dos.writeUTF(ip);
dos.close();
s1out.close();
s1.close();
}catch(IOException e){}
}
}
}
和 import java.lang.*;
import java.io.*;
import java.net.*;
class CServer {
public CServer() throws IOException{
ServerSocket s = new ServerSocket(1254);
while(true){
Socket s1=s.accept();
InputStream s1In = s1.getInputStream();
DataInputStream dis = new DataInputStream(s1In);
String st = new String (dis.readUTF());
System.out.println(st);
dis.close();
s1In.close();
s1.close();
}
}
} 解决方法我找到了解决问题的方法.它只是初始化Socket而不是Socket s1 = new Socket("192.168.1." + i,1254);
但随着 Socket s1 = new Socket();
s1.setSoTimeout(200);
s1.connect(new InetSocketAddress("192.168.1." + i,1254),200);
不管怎么说,还是要谢谢你! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
