作者:xupengkunwudi163899 | 来源:互联网 | 2023-06-19 19:19
public Client(Socket s) { //Client线程类的构造器
socket = s;
try {
dis = new DataInputStream(s.getInputStream()); //存储特定客户socket的输入流接受s这个客户发送到服务器端的信息
ps = new PrintStream(s.getOutputStream()); //存储特定客户socket的输出流发送服务器给s这个客户的信息
String info="";
info= dis.readLine(); //读取接受来的信息
StringTokenizer stinfo = new StringTokenizer(info, ":"); //用StringTokenizer类来读取用":"分段字符
String head = stinfo.nextToken(); //head用来存储类似于关键字的头信息
if (stinfo.hasMoreTokens()) {
name = stinfo.nextToken(); //关键字后的第二段数据是客户名信息
}
if (stinfo.hasMoreTokens()) {
ip = stinfo.nextToken(); //关键字后的第三段数据是客户ip信息
}
System.out.println(head); //在控制台打印头信息
}
catch (IOException e) {
System.out.println("Error:" + e);
}
} //end of Client constrator
如上,我按着F7一行行运行,运行到info= dis.readLine(); 这一行时就什么反应也没有了。
4 个解决方案
服务器一直没有发回车符过来。因为你调用 readLine,结果Java一直在等回车
可是首次连Socket没办法发数据呀!只有连接上才能发呀!
有没有办法不读回车呀!客户端是Flash发的。好像带了个\0。不带回车。
谢谢!