zoukankan      html  css  js  c++  java
  • Socket编程

    Socket

     概念:是连接运行在网络上的两个程序间的双向通讯的端点

       C/S  客户机/服务器  

     B/S   浏览器/服务器

    基于TCP的Socket编程

     创建TCP服务端步骤

    1.   创建一个ServerSocket对象
    2.   调用accept()方法接受客户端请求
    3.   从Socket中获取I/O流
    4.   对I/O流进行读写操作,完成与客户端的交互
    5.   关闭I/O流和Socket

    创建TCP客户步骤

    1.   创建一个Socket对象
    2.   从Socket中获取I/O流
    3.   对I/O流进行读写操作,完成与服务端的交互
    4.   关闭I/O流和Socket
    package com.tanlei.Socket;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class TcpServer {
      public static void main(String[] args) throws IOException {
    	//1,创建一个ServerSocket对象
    	  ServerSocket s1=new ServerSocket(8888);
    	//2.调用accept()方法接受客户端请求
    	  Socket socket=s1.accept();
    	  System.out.println(socket.getInetAddress()+"连接成功");
    	//获取Socket对象的输入输出流
    	  BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
    	  BufferedWriter bw=new BufferedWriter(new  OutputStreamWriter(socket.getOutputStream()));
    	  
    	  String line=null;
    	  //读取客户端传过来的数据
    	   while((line=br.readLine())!=null) {
    		    if(line.equals("over")) {
    		    	break;
    		    }
    		    System.out.println(line);
    		    bw.write(line.toUpperCase());//把转换成大写的字符串传给客户端
    		    bw.newLine();//换行
    		    bw.flush();
    	   }
    	   bw.close();
    	   br.close();
    	   socket.close();
    	   
    	   System.out.println(socket.getInetAddress()+"断开连接");
    	  
    }
    }
    package com.tanlei.Socket;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.Socket;
    
    
    public class TcpClient {
      public static void main(String[] args) throws IOException {
    	 //1.创建一个Socket对象 
    	 Socket socket=new Socket("127.0.0.1", 8888);
    	 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    	 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
    	 BufferedReader br1=new BufferedReader(new InputStreamReader(socket.getInputStream()));
    	 while(true) {
    		 String line=br.readLine();//获取键盘所输入的字符串
    		 bw.write(line);
    		 bw.newLine();//换行
    		 bw.flush();
    		 if (line.equals("over")) {
    			break;
    		}
    		 System.out.println(br.readLine());//获取服务端传来的大小字符串
    	 }
    	 br1.close();
    	 br.close();
    	 bw.close();
    	 socket.close();
    	 
    	 
    }
    }

    基于UDP的Socket编程

    .........................................

  • 相关阅读:
    postman一健导入swagger api所有接口
    pycharm 通过project interpreter国内镜像源设置
    Linux常用软件tree,autojump,lrzsz安装
    文献下载好用网站推荐
    SCIP,Clp,Gurobi和Cplex安装
    Linux下SuperLU安装
    【微服务理论】康威定律
    项目实战:动态系统的设计(类似朋友圈)
    认知提升:工作和薪资
    博客园美化 Cnblogs-Theme-SimpleMemory
  • 原文地址:https://www.cnblogs.com/tanlei-sxs/p/10035842.html
Copyright © 2011-2022 走看看