java自学笔记————网络编程

 

   要求:从客户端输入数据,传输到服务端,将数据的字符转换成大写并返回给客户端,不考虑中文字符和特殊字符;

  思路:客户端:

             1,建立socket服务;

             2,获得键盘输入流,并将数据输出;

             3,输入流来读取从服务端端传来的数据;

             4,将这些数据打印到控制台上。

 


import java.io.*;
import java.net.*;

public class TcpClientDemo3 {
	public static void main(String[] args) throws Exception {
		// 创建一个流套接字并将其连接到指定 IP 1270.0.1 地址的指定端口号10007。
		Socket s = new Socket("127.0.0.1", 10007);

		// 字符缓存流来读取系统能输入的数据
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		// 获得Scoket的输出流
		OutputStream outs = s.getOutputStream();

		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outs));
		// 获得Scoket的输入流
		BufferedReader bur = new BufferedReader(new InputStreamReader(s
				.getInputStream()));

		String str = null;
		// 循环都取数据
		while ((str = br.readLine()) != null) {

			bw.write(str);
			// 换行
			bw.newLine();
			// 刷新该流的缓冲。
			bw.flush();
			// Scoket输入流来读取从服务端传过来的数据;
			String upperLine = bur.readLine();
			// 打印获得的数据
			System.out.println(upperLine);

		}
		// 关闭输出流
		try {
			bw.close();
			
		} catch (Exception e) {
            //若发生异常则,打印出异常信息;
			e.printStackTrace();
		}
		// 关闭Socket
		try {
			s.close();
		} catch (Exception e) {

			e.printStackTrace();
		}

	}
}


 

           服务端:

            1,建立ServerSocket服务;

             2,从监听的套接字中获得数据;

             3,将数据变成大写字符;

             4,转换后的字符,写入输出流中,返回给客户端套接字;



import java.io.*;

import java.net.*;

public class TcpServerDemo3 {
	public static void main(String[] args) throws Exception {
		//建立ServerSocket服务,并监听10007端口;
		ServerSocket ss = new ServerSocket(10007);
             //侦听并接受到此套接字的连接。
		Socket s = ss.accept();
         //服务端接受的套接字的输入流
		BufferedReader br = new BufferedReader(new InputStreamReader(s
				.getInputStream()));
         //服务端监听的套接字的输出流
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s
				.getOutputStream()));

		String str = null;
		while ((str = br.readLine()) != null) {
			//打印从输入流读取的额数据
			System.out.println(str);
			//将小写字符变成大写字符
			str = str.toUpperCase();
             //将数据写到输出流中 
			bw.write("server:"+str);
		     //换行
			bw.newLine();
			//刷出缓冲流中的数据
			bw.flush();
		}

		
       //结束将监听到的套接字关掉,这时不能将建立ServerScoket 关闭;
		s.close();

	}
}


 

 

 

你可能感兴趣的:(java自学笔记————网络编程)