黑马程序员技术交流社区
标题:
网络编程疑问?
[打印本页]
作者:
HM汪磊
时间:
2013-4-9 22:30
标题:
网络编程疑问?
本帖最后由 HM汪磊 于 2013-4-10 12:42 编辑
为什么如下程序编译时提醒:进行语法分析时已到达文件结尾。
import java.io.*;
import java.net.*;
class TClient
{
public static void main(String[] args) throws Exception
{
Socket s=new Socket("127.0.0.1",10002);
BufferedReader bufr=
new BufferedReader(new InputStreamReader(System.in));
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
BufferedReader bufIn=
new BufferedReader(new InputStreamReader(s.getInputStream()));
for(int x=0;x<3;x++)
{
String line=bufr.readLine();
if(line==null)
break;
out.println(line);
String info=bufIn.readLine();
System.out.println("info:"+info);
if(info.contains("欢迎"))
break;
}
bufr.close();
s.close();
}
class UserThread implements Runnable
{
private Socket s;
UserThread(Socket s)
{
this.s=s;
}
public void run()
{
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"....connected");
try
{
for(int x=0;x<3;x++)
{
//获取客户端发过来的用户名
BufferedReader bufIn=
new BufferedReader(new InputStreamReader(s.getInputStream()));
String name=bufIn.readLine();
BufferedReader bufr=
new BufferedReader(new FileReader("1.txt"));
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
String line=null;
boolean flag=false;
while((line=bufr.readLine())!=null)
{
if(line.equals(name))
{
flag=true;
break;//用户存在就结束查找
}
}
if(flag)
{
System.out.println(name+",已登录");
out.println(name+",欢迎光临");
break;
}
else
{
System.out.println(name+",尝试登录");
out.println(name+",用户名不存在");
}
}
s.close();
}
catch (Exception e)
{
throw new RuntimeException(ip+"校验失败");
}
}
}
class TServer
{
public static void main(String[] args) throws Exception
{
ServerSocket ss=new ServerSocket(10002);
while(true)
{
new Thread(new UserThread(s)).start();
}
}
}
作者:
HM黄祥为
时间:
2013-4-9 22:48
你这段代码本身就有语法错误 TClient这个类的末尾少了半个大括号
作者:
刘策
时间:
2013-4-9 22:51
少括号了,这个问题,我老是碰到,我和这个问题太熟悉了。
作者:
刘策
时间:
2013-4-9 22:59
我刚编译了一下你的程序,还有一个错误,
C:\Users\liuce\Desktop>javac TClient.java
TClient.java:107: 错误: 找不到符号
new Thread(new UserThread(s)).start();
^
符号: 变量 s
位置: 类 TServer
1 个错误
作者:
胡发友
时间:
2013-4-10 10:39
你user类中接收的是一个Socket对象,而你传入的是ServerSocket对象,
作者:
HM许涛
时间:
2013-4-10 11:44
常遇到这个错误,少括号了。
建议在EditPlus里面把视图工具里面的匹配括号高亮选中,后继写的时候就比较方便看到哪里少括号了。
作者:
陈丽莉
时间:
2013-4-10 18:18
若还有问题,继续追问; 没有的话,将帖子分类改成【已解决】哦~
点进自己的帖子,编辑->标题左侧有下拉菜单->改变分类->保存~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2