黑马程序员技术交流社区

标题: tcp传输问题 [打印本页]

作者: 付左军    时间: 2012-5-19 15:22
标题: tcp传输问题
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 15:44
你把IP改成127.0.0.1试试  端口号也该下多改几次 最好用360看看端口号有没有被专用。。
作者: 陈栋    时间: 2012-5-19 16:05
程序没有问题,看看你的ip地址是否一样,改成localhost试试看,或者改一下port
作者: 李文富    时间: 2012-5-19 16:33
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;

作者: 宗士为    时间: 2012-5-19 16:36
楼主我运行你的代码是没问题的  
首先有两个要注意
第一是ip
这个ip你如果在自己电脑上运行的话就查下自己电脑的ip  我给你截取了个图  看下就知道怎么找了

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


你再试下应该就没问题了

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

1.jpg





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