zoukankan      html  css  js  c++  java
  • java 网络编程(四)TCP通讯

    客户端:

    package cn.sasa.TcpDemo;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    
    //客户端
    public class TCPSocketDemo {
    
        public static void main(String[] args) throws IOException {
            Socket socket = new Socket("127.0.0.1",8040);
            //传ip和端口号,直接和服务器建立连接,如果连接失败,就抛异常
            OutputStream output = socket.getOutputStream();
            output.write("hello".getBytes());//往服务器写
            
            //读取服务器发回的数据
            InputStream input = socket.getInputStream();
            byte[] buff = new byte[1024];
            int len = input.read(buff);
            System.out.println(new String(buff,0,len));
            
            socket.close();
        }
    }

    服务器端:

    package cn.sasa.TcpDemo;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    //服务端
    public class TCPServerSocketDemo {
    
        public static void main(String[] args) throws IOException {
            /**
             * java中的TCP和UDP的socket通信区别在于TCP通信区分服务器和客户端
             * TCP服务器:ServerSocket
             * TCP客户端:Socket
             * 
             * 客户端向服务器发送请求
             * 服务器接收客户端请求,建立连接,,两者之间通过IO流传输
             * 客户端向服务器发数据 output.write
             * 服务器接收 input.read
             * 服务器响应客户端 output.write
             * 客户端接收服务器消息 input.read
             * 
             * 服务器必须要获得客户端的套接字对象Socket,服务器需要知道是和谁的连接
             * Socket accept()
             */
            ServerSocket server = new ServerSocket(8040);
            Socket socket = server.accept();
            
            //获得输入流
            InputStream input = socket.getInputStream();
            byte[] buff = new byte[1024];
            int len = input.read(buff);
            System.out.println(new String(buff,0,len));
            
            //服务器向客户端发数据
            OutputStream output = socket.getOutputStream();
            output.write("received".getBytes());
            
            socket.close();
            server.close();
        }
    }
  • 相关阅读:
    tar.gz 查看原文件大小
    ssh2 和 ssh 的公钥转换
    MySQL binlog 导入
    app自动测试-微信(android)-web-1
    crontab中执行java程序的脚本
    tomcat 启动慢解决(/dev/random)
    app自动测试-微信(iOS)-web-1
    git
    java.lang.OutOfMemoryError: unable to create new native thread
    docker (centOS 7) 使用笔记6
  • 原文地址:https://www.cnblogs.com/SasaL/p/10304269.html
Copyright © 2011-2022 走看看