A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李志广 中级黑马   /  2012-8-3 11:01  /  1274 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
import java.net.*;
class  TcpClient2
{
        public static void main(String[] args) throws Exception
        {
                Socket s=new Socket("192.168.0.6",10003);
                OutputStream out=s.getOutputStream();
                out.write("服务端你好!".getBytes());
                InputStream in=s.getInputStream();
                byte[] buf=new byte[1024];
                int len=0;
                while((len=in.read(buf))!=-1)
                        {
                        System.out.println(new String(buf,0,len));
                        }
                s.close();
        }
}
class  TcpServer2
{
        public static void main(String[] args) throws Exception
        {
                ServerSocket ss=new ServerSocket(10003);
                Socket s=ss.accept();
                String ip=s.getInetAddress().getHostAddress();
                System.out.println(ip+".....connected");
                InputStream in=s.getInputStream();
                byte[] buf=new byte[1024];
                int len=0;
                while((len=in.read(buf))!=-1)
                        {
                        System.out.println(new String(buf,0,len));
                        }
                OutputStream out=s.getOutputStream();
                out.write("客户端你好!".getBytes());
        s.close();
        ss.close();
        }
}

打印结果怎么没有显示:客户端你好! 到底哪出错啦?帮忙看一下!!!谢谢



搜狗截图_2012-08-03_10-58-42.png (2.15 KB, 下载次数: 10)

搜狗截图_2012-08-03_10-58-42.png

3 个回复

倒序浏览
我帮你解决了 你看下面的代码吧

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

public class TcpClient2 {
        public static void main(String[] args) throws Exception {
                Socket s = new Socket("127.0.0.1", 10013);
                OutputStream out = s.getOutputStream();
                out.write("服务端你好!".getBytes());
               
                InputStream in = s.getInputStream();
                byte[] buf = new byte[1024];
                int len = 0;
                while ((len = in.read(buf)) != -1) {
                        System.out.println(new String(buf, 0, len));
                }
                s.close();
        }
}

class TcpServer2 {
        public static void main(String[] args) throws Exception {
                ServerSocket ss = new ServerSocket(10013);
                Socket s = ss.accept();
                String ip = s.getInetAddress().getHostAddress();
                System.out.println(ip + ".....connected");
                InputStream in = s.getInputStream();
                byte[] buf = new byte[1024];
                int len = 0;
                while ((len = in.read(buf)) != -1) {
                        System.out.println(new String(buf, 0, len));
                        OutputStream out = s.getOutputStream();
                        out.write("客户端你好!".getBytes());
                        out.flush();
                       
                }
                s.close();
                ss.close();
               
        }
}
回复 使用道具 举报
杨智 发表于 2012-8-3 22:32
我帮你解决了 你看下面的代码吧

import java.io.*;

哦,谢谢!!!问题已解决!!!!
回复 使用道具 举报
楼上的解决方案明显是类似投机的
楼主的问题关键在于服务端的
while((len=in.read(buf))!=-1)
                        {
                        System.out.println(new String(buf,0,len));
                        }
得不到结束。即客户端没有发送一个结束标记过来。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马