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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 付左军 中级黑马   /  2012-5-19 15:22  /  2166 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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


class Client
{
        public static void main (String [] args)throws Exception
        {
                Socket s=new Socket("172.16.57.35",15455);
                OutputStream out=s.getOutputStream();
                out.write("客户端发送".getBytes());

                InputStream in=s.getInputStream();
                byte []buf=new byte[1024];
                int len=in.read(buf);
                System.out.println(new String(buf,0,len));
                s.close();       
               
        }
}

class Server
{
        public static void main (String [] args)throws Exception
        {
                ServerSocket ss=new ServerSocket(15455);
                Socket s=ss.accept();
                InputStream in=s.getInputStream();       
                byte [] buf=new byte[1024];
                int len=in.read(buf);
                System.out.println(new String(buf,0,len));

                OutputStream out=s.getOutputStream();
                out.write("服务端收到".getBytes());
                s.close();
                ss.close();
        }
}

为什么传输失败

点评

网络这块,先要确定 端口号是否被占用,再就是看 服务端是否开启, 再判断代码问题  发表于 2012-5-19 21:19

4 个回复

倒序浏览
你把IP改成127.0.0.1试试  端口号也该下多改几次 最好用360看看端口号有没有被专用。。
回复 使用道具 举报
程序没有问题,看看你的ip地址是否一样,改成localhost试试看,或者改一下port
回复 使用道具 举报
import java.net.*;
import java.io.*;


class Client
{
        public static void main (String [] args)throws Exception
        {
                Socket s=new Socket("172.16.57.35",15455);
                OutputStream out=s.getOutputStream();
                out.write("客户端发送".getBytes());

                InputStream in=s.getInputStream();
                byte []buf=new byte[1024];
                int len=in.read(buf);
                System.out.println(new String(buf,0,len));
                s.close();        
               
        }
}

class Server
{
        public static void main (String [] args)throws Exception
        {
                ServerSocket ss=new ServerSocket(15455);
                Socket s=ss.accept();
                InputStream in=s.getInputStream();        
                byte [] buf=new byte[1024];
                int len=in.read(buf);
                System.out.println(new String(buf,0,len));

                OutputStream out=s.getOutputStream();
                out.write("服务端收到".getBytes());
                s.close();
                ss.close();
        }
}
第一检测端口15455是否被占用  cmd  下  ipconfig -a;
第二检查ipv4的ip地址:确定是你的ip;
回复 使用道具 举报
楼主我运行你的代码是没问题的  
首先有两个要注意
第一是ip
这个ip你如果在自己电脑上运行的话就查下自己电脑的ip  我给你截取了个图  看下就知道怎么找了

第二个是端口数
你把自己的TCP运行一次后端口就会被使用   你再次调用的话端口还没有释放  所以要换个端口  用一般都是把之前的端口加1


你再试下应该就没问题了

1.jpg (61.57 KB, 下载次数: 7)

1.jpg
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马