阅读 183

TCP

TCP

客服端

  1. 连接服务器 Socket

  2. 发送消息

package com.zheng.study02;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

//客户端
public class TcpClientDemo01 {
   public static void main(String[] args) {
       Socket socket=null;
       OutputStream os=null;

       try {
           //1.要知道服务器的地址,端口号
           InetAddress serverIp = InetAddress.getByName("127.0.0.1");
           int port=9999;
           //2.创建一个socket连接
           socket = new Socket(serverIp,port);
           //3.发送消息   IO流
           os = socket.getOutputStream();
           os.write("欢迎光临".getBytes());

       } catch (Exception e) {
           e.printStackTrace();
       }finally {
           if(socket!=null){
               try {
                   socket.close();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }

           if(os!=null){
               try {
                   os.close();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }
       }


   }
}

 

服务器

  1. 建立服务的端口 ServerSocket

  2. 等待用户的连接 accept

  3. 接收用户的消息

package com.zheng.study02;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

//服务端
public class TcpServletDemo01 {
   public static void main(String[] args) {

       ServerSocket serverSocket=null;
       Socket socket=null;
       InputStream is=null;
       ByteArrayOutputStream baos=null;
       try {
           //1.我得要有一个地址
           serverSocket = new ServerSocket(9999);

           while (true){
               //2.等待客户端连接过来
               socket = serverSocket.accept();
               //3.读取客户端的消息
               is = socket.getInputStream();

               //管道流
               baos = new ByteArrayOutputStream();
               byte[] buffer = new byte[1024];
               int len;
               while ((len=is.read(buffer))!=-1){
                   baos.write(buffer,0,len);
               }
               System.out.println(baos.toString());
           }


       } catch (IOException e) {
           e.printStackTrace();
       }finally {
           //关闭资源
           if (baos!=null){
               try {
                   baos.close();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }
           if (is!=null){
               try {
                   is.close();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }

           if(socket!=null){
               try {
                   socket.close();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }

           if(serverSocket!=null){
               try {
                   serverSocket.close();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }


       }


   }
}

 

文件上传

服务端

package com.zheng.study02;

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

public class TcpServletDemo02 {
   public static void main(String[] args) throws IOException {
       //1.创建一个端口
       ServerSocket serverSocket = new ServerSocket(9000);
       //2.监听客户端的连接
       Socket socket = serverSocket.accept();//阻塞式监听,会一直等待客户端连接
       //3.获取输入流
       InputStream is = socket.getInputStream();
       //4.文件输出
       FileOutputStream fos = new FileOutputStream(new File("receive"));
       byte[] buffer = new byte[1024];
       int len;
       while ((len=is.read(buffer))!=-1){
           fos.write(buffer,0,len);
       }
       //通知客户端接收完毕了
       OutputStream os = socket.getOutputStream();
       os.write("我接收完毕".getBytes());

       fos.close();
       is.close();
       socket.close();
       serverSocket.close();

   }
}

客服端

package com.zheng.study02;

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


public class TcpClientDemo02 {
   public static void main(String[] args) throws IOException {
       //1.创建一个socket连接
       Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9000);
       //2.创建一个输出流
       OutputStream os = socket.getOutputStream();
       //3.读取文件
       FileInputStream fis = new FileInputStream(new File("1.png"));
       //4.写出文件
       byte[] buffer= new byte[1024];
       int len;
       while ((len=fis.read())!=-1){
           os.write(buffer,0,len);
       }

       //通知服务器,我已经结束
       socket.shutdownOutput();//我已经传输完了

       //确定服务器连接完毕,才能够断开连接
       InputStream inputStream = socket.getInputStream();
       ByteArrayOutputStream baos = new ByteArrayOutputStream();

       byte[] buffer2 = new byte[1024];
       int len2;
       while ((len2=inputStream.read(buffer2))!=-1){
           baos.write(buffer2,0,len2);
       }
       System.out.println(baos.toString());

       baos.close();
       inputStream.close();
       fis.close();
       os.close();
       socket.close();

   }
}

Tomcat

服务端

。自定义 S

。Tomcat服务器 S

客户端

。自定义 C

。浏览器 B

服务器评测 http://www.cncsto.com/ 

服务器测评 http://www.cncsto.com/ 

站长资源 https://www.cscnn.com/ 


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐