Java网路编程 例子

一、概述

Java网络编程:数据在网络传输的过程中,需要用到网络编程,安全性较高的用TCP,要求速度快的用UDP。针对TCP的套接字编程,是一个重点。下面为一个示例:客户端传递一个字串到服务器,由服务器处理完返回大写字符。

二、程序

  • 客户端

   /**    
    * @Title: TCPClient.java  
    * @Package com.lut.day23  
    * @Description: TODO 
    * @author Licon  
    * @date 2018年8月31日  
    * @version V1.0    
    */  
package com.lut.wy.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

/**  
    * @ClassName: TCPClient  
    * @Description: TODO  
    * @author Licon  
    * @date 2018年8月31日  
    *    
    */
public class TCPClient {
	public static void main(String[] args) {
		Socket socket = null;
		Scanner sc = null;
		PrintWriter pw = null;
		BufferedReader br=null;
		try {
			//绑定服务器端口,便于发送数据
			socket = new Socket("127.0.0.1",9999);
			//输入流
			sc = new Scanner(System.in);
			String line = null;
			//向socket对象中写内容,传递给服务器
			pw = new PrintWriter(socket.getOutputStream());
			//读取流,读取服务器返回回来的数据
			br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
			while((line=sc.nextLine()) != null){
				if("over".equals(line)){
					break;
				}
				pw.println(line);
				pw.flush();
				String readLine = br.readLine();
				System.out.println(readLine);
			}
		
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(sc != null) {
					sc.close();
				}
				if(br != null) {
					br.close();
				}
				if(pw != null) {
					pw.close();
				}
				socket.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} 
		
	}
}
  • 服务器端

 

   /**    
    * @Title: TCPServer.java  
    * @Package com.lut.wy.socket  
    * @Description: TODO 
    * @author Licon  
    * @date 2018年8月31日  
    * @version V1.0    
    */  
package com.lut.wy.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**  
    * @ClassName: TCPServer  
    * @Description: TODO  
    * @author Licon  
    * @date 2018年8月31日  
    *    
    */
public class TCPServer {
	public static void main(String[] args) {
		BufferedReader br = null;
		ServerSocket ss = null;
		Socket accept = null;
		PrintWriter pw= null;
		try {
			 ss= new ServerSocket(9999);
			 //设置循环,不断监听9999端口
			while(true) {
				//获取客户端发过来的socket对象
				    accept = ss.accept();
				    //创建读取流,读取accpet中的字节数据
				    br = new BufferedReader(new InputStreamReader(accept.getInputStream(),"GBK"));
				    //创建输出流,将处理后的数据返回客户端
				    pw = new PrintWriter(accept.getOutputStream());
					String readLine = null;
					//返回数据
					while((readLine = br.readLine()) != null) {
						System.out.println(readLine);
						pw.println(tpUpperCase(readLine));
						pw.flush();				
					}
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				if(br != null) {
					br.close();
				}
				if(pw != null) {
					pw.close();
				}
				if(ss != null) {
					ss.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} 
	}
	
	   /**  
	    * @Title: tpUpperCase  
	    * @Description: TODO 将小写转化为大写
	    * @param @param str
	    * @param @return   
	    * @return String 
	    * @throws  
	    */   
	public static String tpUpperCase(String str) {
		return str.toUpperCase();
	}
}

 

你可能感兴趣的:(java)