美文网首页
面向常考---客户端or服务端

面向常考---客户端or服务端

作者: _Kantin | 来源:发表于2017-08-31 17:03 被阅读46次

(1)客户端

   public class MyClient {
    public static void main(String[] args) {
        MyClient client = new MyClient();
        try {
            client.sendFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void sendFile() throws IOException {
        Socket socket = new Socket();
        //设定连接的IP地址和端口
        SocketAddress socketAddress = new InetSocketAddress("localhost",9080);
        FileInputStream fileInputStream=null;
        FileOutputStream fileOutputStream=null;
        byte[] buffer = new byte[1024];
        try {
            //连接到IP地址
            socket.connect(socketAddress);
            //FileInputStream用于在读取从本地文件读取输入
            fileInputStream = new FileInputStream("/tmp/src.data");
            //从socket中获得输出,从本地的输入中读取并写入它
            fileOutputStream= (FileOutputStream) socket.getOutputStream();
            int length=0;
            //从本地的socket中读取
            while((length=fileInputStream.read(buffer,0,buffer.length-1))!=-1){
                //写入
                fileOutputStream.write(buffer,0,length);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            fileInputStream.close();
            fileOutputStream.close();
            if(socket!=null && socket.isConnected()){
                socket.close();
            }
        }
    }
}

(2)服务端

 public class MyServer {
    public static void main(String[] args) {
        MyServer server = new MyServer();
        try {
            server.receiveFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void receiveFile() throws IOException {
        Socket clientSocket = null;
        InputStream inputStream=null;
        FileOutputStream fileOutputStream=null;
        byte[] buffer = new byte[1024];

        try {
            //服务端指监听端口
            ServerSocket serverSocket = new ServerSocket(10000);
            //服务端接受
            clientSocket = serverSocket.accept();
            //获得客户端输入流
            inputStream = clientSocket.getInputStream();
            //创建自己的本地输出流
            fileOutputStream = new FileOutputStream("/tmp/data");
            int length = 0;
            //从socket的输入流中读入数量写到自己的本地输出流中
            while((length=inputStream.read(buffer,0,buffer.length-1))!=-1){
                fileOutputStream.write(buffer,0,length);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            inputStream.close();
            fileOutputStream.close();
            if(clientSocket!=null && clientSocket.isConnected()){
                clientSocket.close();
            }
        }
    }
}


相关文章

  • 面向常考---客户端or服务端

    (1)客户端 (2)服务端

  • 游戏服务端开发探幽(一)

    引言 游戏开发分为客户端和服务端,服务端和客户端的逻辑很相似,但是服务端更多在于数值计算和校验,客户端更多在于面向...

  • Python day21_mini_tcp服务器

    小程序 tcp服务端响应客户端发送的静态资源请求 面向函数编程

  • UDP通信

    UDP - 面向无连接, 不安全的传输层协议.API: 服务端代码 客户端代码:

  • 【程序员笔试】+计算机网络+TCP

    TCP特点 面向连接 点对点(客户端和服务端) 可靠交付 全双工 面向字节流 IP是尽最大努力交付TCP就是在不可...

  • Python Socket

    TCP 客户端 服务端 UDP 客户端 服务端

  • 命令行聊天小程序

    分为客户端和服务端,客户端: 服务端:

  • Tcp & UDP

    面向连接的 可靠的传输 三次握手 1客户端发送Syn ,相当于在问服务端,你听到我说话了吗 2服务端返回sun+A...

  • Netty应答服务

    需求:服务端接收客户端发送的数据,并将数据返回给客户端 客户端代码 客户端handler 服务端代码 服务端han...

  • kafka生产消费

    produce客户端 produce服务端 consumer客户端 consumer服务端

网友评论

      本文标题:面向常考---客户端or服务端

      本文链接:https://www.haomeiwen.com/subject/vhmorxtx.html