黑马程序员技术交流社区

标题: TCP客户端问题 [打印本页]

作者: 王小刚    时间: 2012-4-25 13:08
标题: TCP客户端问题
//TCP客户端
import java.net.*;
import java.io.*;
class TCPclient
{
        public static void main(String[] args)
        {
                try
                {
                        Socket s = new Socket("192.168.1.101",10005);
                        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
                        BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
                        BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
                        String line = null;
                        while ((line=bufr.readLine())!=null)
                        {
                                if ("over".equals(line))
                                        break;
                                bufOut.write(line);
                                bufOut.newLine();
                                bufOut.flush();
                                String str = bufIn.readLine();
                                System.out.println(str);
                        }
                        bufr.close();
                        s.close();
                               
                }
                catch (Exception e)
                {
                        System.out.println("over");
                }
        }
}
为什么运行结果是 over ?
而不是等待键盘录入的呢 , 找了很久,就是没找到问题所在。
作者: 徐鑫    时间: 2012-4-25 13:13
TCP协议是面向连接的,你服务端(ServerSocket)没有开,先执行客户端它连不到服务,就要有连接超时异常,然后就报"over"了
你应该先开服务端!!!
作者: 应佳锋    时间: 2012-4-25 13:24
你用的是TCP 的客户端
这个程序首先会进行三次握手也就是  去查看有没有这个服务器打开着
你的程序寻找不到属于  IP地址为192.168.1.101",端口号:10005的服务器 他当然报错啦
作者: 王小刚    时间: 2012-4-25 13:35
谢谢,原来是这个原因呀,我查代码查了好久就是没找到错误...




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2