黑马程序员技术交流社区

标题: TCP程序问题 [打印本页]

作者: 莫运飞    时间: 2012-4-24 15:03
标题: TCP程序问题
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

class manffile2 {

        public static void main(String[] args)throws Exception
        {
                               
                ServerSocket serverstock=new ServerSocket(10009);
               
                while(true){
                Socket server=serverstock.accept();
               
                new Thread( new PicThread(server)).start();
               
               
        }
        }
}


class PicThread implements Runnable
{
       
        private Socket server;
          PicThread(Socket server)
         {
                this.server=server;
        }
       
        public void run(){
               
               
                try
                {
                        InputStream inputstream=server.getInputStream();
                       
                        FileOutputStream fileoutputstream=new FileOutputStream("2.txt");
                        int ch=0;
                        byte[] byt=new byte[1024];
                       
                        while((ch= inputstream.read(byt))!=-1){
                               
                                fileoutputstream.write(byt,0,ch);
                               
                        }
                       
                        OutputStream outputstream=server.getOutputStream();
                       
                        byte[] byt2=new byte[1024];
                       
                       
                        outputstream.write("上传成功".getBytes());
                       
                        server.close();
                       
                }
                catch(Exception E){
                       
                }
               
        }
       
       
}

----------------------------------------------------------------


import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Stack;

class ManyFile {

       
        public static void main(String[] args) throws Exception
        {
               
                Socket stock=new Socket("192.168.1.2",10009);
               
                FileInputStream inputstream=new FileInputStream("1.txt");
               
                OutputStream outputstream=stock.getOutputStream();
               
                int ch=0;
                byte[] byt=new byte[1024];
               
                while((ch=inputstream.read(byt))!=-1){
                       
                        outputstream.write(byt,0,ch);
                       
                }
               
                stock.shutdownOutput();
               
                InputStream intputstream=stock.getInputStream();
               
                byte[] byt2=new byte[1024*1024];
               
                int num=inputstream.read(byt2);
                System.out.println(new String(byt2,0,num));
                stock.close();
               
               
        }

}
程序不知道哪里有问题报错:Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
        at java.lang.String.checkBounds(String.java:398)
        at java.lang.String.<init>(String.java:570)
        at manyfile.ManyFile.main(ManyFile.java:37)

作者: 杨华威    时间: 2012-4-24 16:17
InputStream intputstream=stock.getInputStream(); //这里定义的是:intputstream
                byte[] byt2=new byte[1024*1024];
                  int num=inputstream.read(byt2); // 这里,应该是intputstream.read(byt2);少写了单词t




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