TCP应用程序

    技术2024-07-03  70

    package tcp;

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

    public class TcpServer {

     /**  * @param args  */ public static void main(String[] args) {  TcpServer ts = new TcpServer();  //多线程的例子  ts.ThreadServer();//  单线程的例子.//  ts.easySocket(); }   public void easySocket (){  try {   ServerSocket ss = new ServerSocket(5000);   Socket s = ss.accept();   System.out.println("sssss");   InputStream is = s.getInputStream();   OutputStream os = s.getOutputStream();   String str = "大家好!这是server端的信息!";   os.write(str.getBytes());   //通过包装类,来实现一行一行的读取.不用自己写判断.   BufferedReader br = new BufferedReader(new InputStreamReader(is));   System.out.println(br.readLine());   /*只能读取一个字节,要么就自己写方法,判断是回车还是换行.   byte[] buf = new byte[1024];   int len = is.read(buf);   System.out.println(new String(buf,0,len));   is.close();   */   //关闭包装类的对象,就会自动的关闭底层类的对象.所以不需要写is.close()   br.close();   os.close();   s.close();   ss.close();     } catch (IOException e) {   e.printStackTrace();  } }  public void ThreadServer(){  try {   ServerSocket ss = new ServerSocket(3000);   while(true){    Socket s = ss.accept();    new Thread(new TransformSocket(s)).start();   }  } catch (IOException e) {   e.printStackTrace();  } }

    }

     

     

     

     

     

    package tcp;

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

    public class TransformSocket implements Runnable {

     private Socket s = null;  public TransformSocket(Socket s){  this.s = s; }   public void run() {  try {   InputStream is = s.getInputStream();   BufferedReader br = new BufferedReader(new InputStreamReader(is));   OutputStream os = s.getOutputStream();   PrintWriter pw = new PrintWriter(os,true);

    //可以再while循环中做更多的事情.   while(true){    String readLine = br.readLine();    if(readLine.equals("quit")){     break;    }    System.out.println(readLine);    pw.println(readLine+"---!!!!!!");

       }   pw.close();   br.close();   s.close();     } catch (IOException e) {   e.printStackTrace();  } }

    }

     

    最新回复(0)