zoukankan      html  css  js  c++  java
  • 客户端服务器互发数据

    服务器

    package com.test;
    
    
    import java.net.*;
    import java.io.*;
    
    public class MyServer {
        public MyServer(){
            try {
                //在60000端口上监听
                ServerSocket ss = new ServerSocket(60000);
                System.out.println("服务器启动,在60000端口上监听...");
                //阻塞 等待某个客户端的连接 这个函数会返回Socket连接
                Socket s = ss.accept();
                //System.out.println("与客户端的连接打通");
                //与客户端打通之后 就可以从s中读取客户端发送过来的数据  客户端的s与服务器的s是一样的 是同一个通道
                //InputStreamReader:是读对象  表示从s中读取数据流  
                InputStreamReader isr = new InputStreamReader(s.getInputStream());
                BufferedReader br = new BufferedReader(isr);
                String info = br.readLine();
                System.out.println("客户端说:"+info);
                
                PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
                //往客户端写一行
                pw.println("你好客户端,我是服务器");
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        public static void main(String[] args){
            MyServer ms = new MyServer();
        }
    }

    客户端

    package com.test;
    
    import java.net.Socket;
    import java.io.*;
    public class MyCLient {
    
        public static void main(String[] args) {
            
            MyCLient myClient = new MyCLient();
        }
        public MyCLient(){
            try {
                //Socket()需要传入两个参数 第一个是要发送的服务器的ip,第二个是端口
                Socket s = new Socket("127.0.0.1",60000);
                //如果s连接成功就可以往服务器发送数据
                //PrintWriter:写入对象
                //getOutputStream: 输出流  表示往s中写入数据,true 代表及时刷新数据
                PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
                //println()表示写一行
                pw.println("你好啊 ,我是客户端");
                
                //读取服务器发送过来的数据
                InputStreamReader isr =new InputStreamReader(s.getInputStream());
                BufferedReader br = new BufferedReader(isr);
                String info = br.readLine();
                System.out.println("服务器说:"+info);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }

    先启动服务器,让服务器在60000端口上监听,再启动客户端,那么这时客户端与服务器之间的socket连接打通,不过这样是一次性的

  • 相关阅读:
    八. 输入输出(IO)操作2.面向字符的输入流
    八. 输入输出(IO)操作1.输入输出基本概念
    七. 多线程编程11.线程的挂起、恢复和终止
    七. 多线程编程10.线程死锁
    nginx 配置身份验证 http_auth_basic_module
    liunx mysql 备份
    8080 端口只允许内网访问配置
    nginx 配置白名单
    liunx tomcat 运行模式apr
    liunx contos 7.4 安装redis集群
  • 原文地址:https://www.cnblogs.com/mrluotong/p/5957965.html
Copyright © 2011-2022 走看看