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


  • 相关阅读:
    多任务GUI窗口系统(类window,有源码,支持汉字显示、顶层、非矩形和透明窗口)gicell源码
    怎样判断treeview当前节点为treeview显示出来的第一个节点和最后一个节点?
    用 dbgrid 或 dbgrideh 如何让所显示数据自动滚动
    vue路由懒加载及组件懒加载
    vue 中使用rem布局
    纯css实现移动端横向滑动列表&&overflow:atuo;隐藏滚动条
    分布式一致性算法Raft
    HDU_1753 大明A+B
    POJ——3630 Phone List
    HDU_2647 Reward (拓扑排序)
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218376.html
Copyright © 2011-2022 走看看