zoukankan      html  css  js  c++  java
  • socket 通信

    package socket;
    
    import java.io.BufferedReader;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Date;
    
    /**
     * TCP通信的服务器端
     */
    public class TCPServerTest {
    
    	public static void main(String[] args) {
    		ServerSocket ss = null;
    		PrintWriter pw = null;
    		BufferedReader  br = null;
    		try {
    			ss = new ServerSocket(8888);  //创建服务器Server并绑定到指定端口
    			
    			System.out.println("服务器开始监听8888端口....");
    			Socket so = ss.accept();  //监听并接收客户端的TCP连接,返回与该客户端通信的Socket
    			System.out.println("服务器接收到了一个客户端:" + so.getRemoteSocketAddress());
    			//接收
    			br = new BufferedReader(new InputStreamReader(so.getInputStream()));
    			String str = br.readLine();
    			System.out.println("客户端说:" + str);
    			
    			
    			//从与客户端对应的Socket实例中获取字节输出流并转换成打印字符输出流,带自动刷新功能
    //			pw = new PrintWriter(new OutputStreamWriter(so.getOutputStream()), true);
    //			pw.println("你好,客户端!今天是:" + new Date());
    			DataOutputStream dis = new DataOutputStream(so.getOutputStream());
    			String result = "你好,客户端!今天是:" + new Date();
    			dis.write(result.getBytes());
    			dis.flush();
    			
    			//PrintStream System.in; 代表标准输入
    			
    		} catch (IOException e) {
    			e.printStackTrace();
    		}finally{
    			if(null != pw){
    				pw.close();
    			}
    			if(null != br){
    				try {
    					br.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    			if(null != ss){
    				try {
    					ss.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    		
    	}
    
    }
    
    package socket;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    /**
     * TCP通信的客户端
     */
    public class TCPClientTest {
    
    	public static void main(String[] args) {
    		Socket s = null;
    		BufferedReader  br = null;
    		PrintWriter pw = null;
    		try {
    			s = new Socket("127.0.0.1",8888); //创建客户端Socket,并连接到指定IP地址和端口的服务器端程序
    			//发
    			pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream()), true);
    			pw.println("你好,服务器!");
    			
    			//收
    			br = new BufferedReader(new InputStreamReader(s.getInputStream()));
    			String str = br.readLine();
    			System.out.println("服务器说:" + str); 
    			
    		} catch (UnknownHostException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}finally{
    			
    			if(null != pw){
    				pw.close();
    			}
    			if(null != br){
    				try {
    					br.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    			if(null != s){
    				try {
    					s.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    		
    	}
    
    }
    


  • 相关阅读:
    解决方案
    项目管理
    项目管理
    产品经理
    产品经理
    产品经理
    产品经理
    vue学习面向对象,在项目中怎么用呢?
    vue表单验证不通过,依然能执行点击事件里面的代码?
    vue中js文件中export常见方法及使用
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218376.html
Copyright © 2011-2022 走看看