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编程

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

  • 相关阅读:
    js实现复制功能 javascript
    《架构整洁之道》之组件聚合
    《架构整洁之道》之组件
    js实现导出word
    js实现导出pdf
    《架构整洁之道》之依赖反转原则
    《架构整洁之道》之接口隔离原则
    《架构整洁之道》之里氏替换原则
    解决js地址栏中传递中文乱码的问题
    Windows安装nginx服务
  • 原文地址:https://www.cnblogs.com/tanlei-sxs/p/10035842.html
Copyright © 2011-2022 走看看