zoukankan      html  css  js  c++  java
  • Java网络编程-TCP

    InetAddress和SocketAddress

    //InetAddress
    InetAddress add1=InetAddress.getByName("127.0.0.1");
    			
    InetAddress add2=InetAddress.getByName("localhost");
    
    InetAddress add3=InetAddress.getLocalHost();
    
    //InetSocketAddress
    InetSocketAddress socadd1=new InetSocketAddress("127.0.0.1", 8080);
    
    InetSocketAddress socadd2=new InetSocketAddress("localhost", 8080);
    	
    

    TCP协议信息传输

    //客户端发送一条消息
    public class TcpClient_01 {
    	public static void main(String[] args) {
    		Socket socket=null;
    		OutputStream os=null;
    		
    		try {
    			InetAddress addr=InetAddress.getByName("127.0.0.1");
    		
    			int port=9999;
    			
    			socket =new Socket(addr, port);
    			os=socket.getOutputStream();
    			
    			os.write("i am client".getBytes());
    			
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally {
    			try {
    				os.close();
    				socket.close();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		
    		
    		
    	}
    }
    //服务端接收消息
    public class TcpServer_01 {
    	
    	public static void main(String[] args) {
    		ServerSocket servsocket=null;
    		Socket accept=null;
    		InputStream is=null;
    		ByteArrayOutputStream bos=null;
    		try {
    			servsocket=new ServerSocket(9999);
    			
    			while(true) {
    				accept=servsocket.accept();
    				
    				is=accept.getInputStream();
    				
    				/*
    				byte[] buffer=new byte[1024];
    				int len;
    				while((len=is.read(buffer))!=-1) {
    					String msg=new String(buffer,0,len);
    					System.out.println(msg);
    				}
    				*/
    				
    				bos=new ByteArrayOutputStream();
    				byte[] buffer=new byte[1024];
    				int len;
    				while((len=is.read(buffer))!=-1) {
    					bos.write(buffer,0,len);//使用管道流
    				}
    				System.out.println("server accept:"+bos.toString());
    			}
    			
    		
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally {
    			try {
    				bos.close();
    				is.close();
    				accept.close();
    				servsocket.close();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			
    		}
    	}
    }
    
    

    TCP收发图片

    //客户端发送图片
    public class TcpClient_02 {
    	public static void main(String[] args) throws UnknownHostException, IOException {
    		
    		Socket socket=new Socket(InetAddress.getByName("127.0.0.1"), 9000);
    		
    		OutputStream os=socket.getOutputStream();
    		
    		FileInputStream fis=new FileInputStream(new File("aaa.png"));
    		
    		byte [] buffer=new byte[512];
    		int len;
    		while((len=fis.read(buffer))!=-1) {
    			os.write(buffer,0,len);
    		}
    		
    		socket.shutdownOutput();//发送完毕,关闭输出
    		
    		InputStream is=socket.getInputStream();
    		ByteArrayOutputStream bos=new ByteArrayOutputStream();
    		byte[] buf=new byte[1024];
    		int len2=0;
    		while((len2=is.read(buf))!=-1) {
    			bos.write(buf,0,len2);
    		}
    		System.out.println("client:"+bos.toString());
    		
    		
    		bos.close();
    		is.close();
    		fis.close();
    		os.close();
    		socket.close();
    		
    	}
    	
    }
    //服务端接收图片
    public class TcpServer_02 {
    	public static void main(String[] args) throws IOException {
    		ServerSocket servsocket=new ServerSocket(9000);
    		Socket accept=servsocket.accept();
    		InputStream is=accept.getInputStream();
    //		OutputStream os=accept.getOutputStream();
    		/*
    		Scanner scanner=new Scanner(System.in);
    		scanner.next();
    		*/
    		FileOutputStream fos=new FileOutputStream(new File("receive1.png"));
    		byte[] buffer=new byte[1024];
    		int len;
    		while((len=is.read(buffer))!=-1) {
    			fos.write(buffer,0,len);
    		}
    		
    		OutputStream os=accept.getOutputStream();
    		os.write("服务器接收完毕".getBytes());
    		
    		os.close();
    		fos.close();
    		is.close();
    		accept.close();
    		servsocket.close();
    		
    	}
    }
    
  • 相关阅读:
    企业站前端——总结
    visual studio插件 visual assistx
    github 预览html
    Resharper
    c#解析json
    Visual Studio 2015 RC Downloads
    C#位运算讲解与示例
    java 位运算权限管控(转载)
    双机热备
    c# 代码执行时间
  • 原文地址:https://www.cnblogs.com/zhang-han/p/14123276.html
Copyright © 2011-2022 走看看