• java网络编程(5)——Tcp


      Tcp相对于Udp就是面向连接的协议,最主要的特点要建立连接之后才能通信,客户端用Socket需要指点地址与端口,服务端用ServeSocket,只需指点监听某个端口,因为是面向连接,所以服务器端一定要先运行起来,然后客户端就可以通过地址和端口找到我们的服务端,建立连接之后就可以通信!

      首先实现最简单的服务端,客户端通信的一个小例子

    客户端:

    package com.seven.tcp;
    
    import java.io.OutputStream;
    import java.net.Socket;
    
    public class TcpClient {
        
        public static void main(String[] args) throws Exception {
            
            Socket socket = new Socket("127.0.0.1",10001);
            
            OutputStream out = socket.getOutputStream();
            
            out.write("hello tcp".getBytes());
            
            socket.close();
        } 
    }

    服务端:

    package com.seven.tcp;
    
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class TcpServer {
    
        public static void main(String[] args) throws Exception {
            
            ServerSocket serverSocket = new ServerSocket(10001);
            
            //获取客户端socket
            Socket socket = serverSocket.accept();    
            
            InputStream in = socket.getInputStream();
            
            byte[] b = new byte[1024];
            
            while(true){
                int len = in.read(b);
                if(len == -1) break;
                System.out.println(socket.getInetAddress()+"---->"+new String(b,0,len));
            }
            socket.close(); 
        }
    }

    这样就实现了客户端服务端之间的通讯,其实主要都是通过socket对象实现的,客户端socket的OutputStream对应服务端socket的InputStream,而服务端的OutputStream就对应客户端的InputStream,通过这两个流就实现了通信,包括文本,图片,文件等,只需把文件变成字节流就可以通过tcp来传输!

  • 相关阅读:
    WeChat小程序开发(五、前端总结)
    前端实现复制到剪贴板
    vue的自定义指令含大写字母会失效
    如何把网页变成黑白
    原生JS offsetX和offsetY引起抖动
    jQuery中prop方法和attr方法区别
    Js for循环中的闭包 & let和var的混用对比
    html和body标签默认高度为0带来的影响
    JS字符串数组降维
    CSS浮动流脱标的字围现象
  • 原文地址:https://www.cnblogs.com/sevenlin/p/sevenlin_tcpdemo20150802.html
Copyright © 2020-2023  润新知