即使在导入java.net后,套接字数据类型也会出错。*;

时间:2013-12-17 14:45:11

标签: java eclipse sockets types boolean

我在Java中使用以下代码进行Socket连接,并且即使在导入java.net后,它也会出现Socket数据类型不存在的错误。*;但是当我声明Socket变量con时,在try块之上它表示布尔变量和Socket变量不匹配。编码如下。请指教。

    import java.net.*;
    import java.io.*



    public class DTServer {
    public static void main (String argv[]) {
    int dayTimePort = 13;
    try {
    ServerSocket dtserver = new ServerSocket (dayTimePort);
    while (Socket con = dtserver.accept ()) {
    PrintWriter out = new PrintWriter (con.getOutputStream (), true);
    Date now = new Date ();
    out.println (now.toString ());
    con.close ();
    }
   } catch (Exception e) {}
}

2 个答案:

答案 0 :(得分:1)

是的,这就是问题所在:

while (Socket con = dtserver.accept ())

while语句需要boolean条件 - 而Socket不是boolean。 (并且你不能在while条件中声明变量......)

你可能想要:

while (true) {
    Socket con = dtserver.accept();
    ...
}

当然,如果您想要使用其他条件,请将其替换为true。例如,您可能想要某种方式正常关闭服务器。

答案 1 :(得分:0)

更改此行

while(Socket con = dtserver.accept ())

Socket con = null;
while(true){
      con = dtserver.accept ();
}