zoukankan      html  css  js  c++  java
  • Tcp网络编程 双向多次通讯

    客户端

    package tcptx;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.InetAddress;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    public class TcpClient {
    
        public static void main(String[] args) throws UnknownHostException, IOException {
            //建立TCP的服务
            Socket s = new Socket(InetAddress.getLocalHost(), 9000);
            //获取Socket的输出流
             OutputStreamWriter sockOut = new OutputStreamWriter(s.getOutputStream());
             //获取键盘的输入流对象,读取数据
             BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));
             String line = null;
             //不断读取键盘数据
             while((line = keyReader.readLine())!=null) {
                 sockOut.write(line+"
    ");//需要断行
                 sockOut.flush();
                 System.out.println("客户端数据已发出。。。");
             }
             //关闭资源
             s.close();
        }
    
    }

    服务端

    package tcptx;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class TcpServer {
    
        public static void main(String[] args) throws IOException {
            //建立TCP的服务器,并监听一个端口
            ServerSocket serverSocket = new ServerSocket(9000);
            //接受客户端的连接
            Socket socket = serverSocket.accept();
            //获取输入流对象,读取客户端发送的内容
            BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            //读取客户端数据
            String line = null;
            while((line = socketReader.readLine())!=null) {
                System.out.println("数据接收中>>>>>>>>>>>");
                System.out.println(line);
            }
            //关闭资源
            serverSocket.close();
        }
    
    }
  • 相关阅读:
    vue插件(还真是第一次接触)
    Vue父组件向子组件传值以及data和props的区别
    Vue v-bind与v-model的区别
    vue 异步渲染
    vue动态加载不同的组件(分内部和外部组件)
    vue自定义组件的递归
    作用域插槽模板迭代的次数,取决于组件内部独立slot的数量
    说说 Vue.js 中的 v-cloak 指令
    C语言 system
    C语言 有符号、无符号
  • 原文地址:https://www.cnblogs.com/xiaotao520/p/9152042.html
Copyright © 2011-2022 走看看