黑马程序员技术交流社区

标题: 关于TCP通讯的一个问题 [打印本页]

作者: 潘星    时间: 2012-8-7 00:32
标题: 关于TCP通讯的一个问题
/*
这一个TCP协议的客服端与服务端通过键盘录入的方式将客户端的信息发给服务端的,为什么我客户端写了一句话后程序就死掉了双方都不动了,
我是按照毕老师视频里的步骤写的,为什么我的就会出问题呢,而且我还对着源码看了几遍都没发现问题,
将这个2个类的代码看了一整天,也不知道到底是哪里出的问题,气得快崩溃了,求高手指点一下!谢谢了
*/
import java.io.*;
import java.net.*;
class  TcpClient4
{
        public static void main(String[] args) throws Exception
        {
                Socket s=new Socket("127.0.0.1",10006);
                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("server:"+str);
                }
                bufr.close();
                s.close();               
        }
}
class  TcpServer4
{
        public static void main(String[] args) throws Exception
        {
                ServerSocket ss=new ServerSocket(10006);                       
                Socket s=ss.accept();
                String ip = s.getInetAddress().getHostAddress();
                System.out.println(ip+"....connected");       
                BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
                BufferedWriter bufOut=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
                String line=null;
                while((line=bufIn.readLine())!=null);
                {
                        System.out.println(line);
                        bufOut.write(line.toUpperCase());
                        bufOut.newLine();
                        bufOut.flush();                       
                }
                s.close();
                ss.close();
        }
}
作者: 樊占江    时间: 2012-8-7 00:37
你输入的是不是中文name和密码啊?
作者: 潘星    时间: 2012-8-7 06:43
樊占江 发表于 2012-8-7 00:37
你输入的是不是中文name和密码啊?

啥中文跟密码?
作者: 余明辉    时间: 2012-8-7 08:07
class TcpServer4 {
        public static void main(String[] args) throws Exception {
                ServerSocket ss = new ServerSocket(10006);
                Socket s = ss.accept();
                String ip = s.getInetAddress().getHostAddress();
                System.out.println(ip + "....connected");
                BufferedReader bufIn = new BufferedReader(new InputStreamReader(s
                                .getInputStream()));
                BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(s
                                .getOutputStream()));
                String line = null;
                while ((line = bufIn.readLine()) != null)
                        ;    //这里,你多了个分号               
                                 {
                        System.out.println(line);
                        bufOut.write(line.toUpperCase());
                        bufOut.newLine();
                        bufOut.flush();
                }
                s.close();
                ss.close();
        }
}

希望可以帮到你
作者: 潘星    时间: 2012-8-7 08:53
余明辉 发表于 2012-8-7 08:07
class TcpServer4 {
        public static void main(String[] args) throws Exception {
                ServerSocket ss = ne ...

还真的是,我找了那么久都没发现,原来是多了个分号,真是太感谢你了




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