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();
    				}
    			}
    		}
    		
    	}
    
    }
    


  • 相关阅读:
    离线安装 Framework 3.5 镜像安装
    换行符处理
    使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。
    vs 无法启动iis express web服务器
    OracleInternal.MTS.DTCPSPEManager”的类型初始值设定项引发异常
    纯前端上传文件FormData----注意的地方
    LINQ 的一些相关基本语法
    Spread JS 随笔四 相关用法
    Spread JS 随笔三 列设置
    findbugs报OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE的修改实例
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218376.html
Copyright © 2011-2022 走看看