zoukankan      html  css  js  c++  java
  • 基于tcp的socket通信

    服务器端:
    package socket;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    public class SeverTest {
         public static void main(String[] args) throws IOException {
               // TODO Auto-generated method stub
               ServerSocket server = new ServerSocket(8888);
               Socket socket = server.accept();
               InputStream is = socket.getInputStream();
               InputStreamReader isr = new InputStreamReader(is);
               BufferedReader br = new BufferedReader(isr, 100);
               String b = null;
               while ((b = br.readLine()) != null) {
                    System.out.println("我是服务器,请讲:" + b);
               }
               socket.shutdownInput();// 关闭输入流
               OutputStream os = socket.getOutputStream();
               PrintWriter pw = new PrintWriter(os);
               Scanner scanner = new Scanner(System.in);
               String s = "";
               while (!(s = scanner.nextLine()).equals("")) {
                    pw.write(s);
               }
               pw.flush();
               pw.close();
               os.close();
               scanner.close();
               br.close();
               isr.close();
               is.close();
               socket.close();
               server.close();
         }
    }
    
    
    客户端:
    package socket;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.util.Scanner;
    public class ClientTest {
         public static void main(String[] args) throws IOException {
               Socket socket = new Socket("localhost", 8888);
               OutputStream os = socket.getOutputStream();
               PrintWriter pw = new PrintWriter(os);
               Scanner scanner = new Scanner(System.in);
               String s = "";
               while (!(s = scanner.nextLine()).equals("")) {
                    pw.write(s);
               }
               // pw.write("这里是客户端,我可以告诉你用户名和密码吗?");
               pw.flush();
               socket.shutdownOutput();// 关闭输出流
               InputStream is = socket.getInputStream();
               InputStreamReader isr = new InputStreamReader(is);
               BufferedReader br = new BufferedReader(isr, 100);
               String b = null;
               while ((b = br.readLine()) != null) {
                    System.out.println(b);
               }
               scanner.close();
               br.close();
               isr.close();
               is.close();
               pw.flush();
               pw.close();
               os.close();
               socket.close();
         }
    }


    注意:
    ①在服务器端建立输入流,获取完输入流之后一定要把输入流关闭,否则无法进行后面的输出流操作。
    ②在客户端建立输出流,发送输出流之后一定要把输出流关闭,否则无法进入后面的输入流操作。



  • 相关阅读:
    ajax-分页查询
    Bootstrap-响应式表格
    ajax-三级联动
    ajax(加载数据)
    HDU 3086 马拉车模板
    Power Strings POJ2406 KMP 求最小循环节
    KMP模板题 Number Sequence HDU1711
    Phone List HDU1671 字典树Trie
    一些linux"基本操作"的教程汇总
    Codeforces 899F Letters Removing 线段树/树状数组
  • 原文地址:https://www.cnblogs.com/shenzhouyh/p/6217905.html
Copyright © 2011-2022 走看看