现在的位置: 首页 > 综合 > 正文

java学习笔记——java网络编程基础二

2014年09月05日 ⁄ 综合 ⁄ 共 1839字 ⁄ 字号 评论关闭

这次只是对上次代码的回顾,以及添加了一点小功能:能供通过在控制台输入输出信息来模拟服务器和客户端的通讯,不过太过简单,只能按顺序一人一句,属于半双工,下一篇应该就是全双工的了!!大笑

代码如下:

   模拟服务器:

  

//增加功能   可以通过控制台输入输出信息    交换数据
package ServerTest2;

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

public class MyServer2 {

	public MyServer2(){
		try {
			//监听9999端口
			ServerSocket ss = new ServerSocket(9999);
			System.out.println("我是服务器,我在9999端口进行监听");
			//等待连接
			Socket s = ss.accept();
			while (true) {
				// 连接后接收来自客户端的消息
				InputStreamReader isr = new InputStreamReader(s
						.getInputStream());
				BufferedReader br = new BufferedReader(isr);
				String getinfo = br.readLine();
				System.out.println("接收到:" + getinfo);
				if(getinfo.equals("bye")){
					System.out.println("断开连接");
					s.close();
					break;
				}
                
				System.out.println("请输入要返回给客户端的信息:");
				InputStreamReader isr2 = new InputStreamReader(System.in);
				BufferedReader br2 = new BufferedReader(isr2);
				PrintWriter pw = new PrintWriter(s.getOutputStream(), true);
				
				pw.println(br2.readLine());
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		MyServer2 mc2 = new MyServer2();
	}
}

  模拟客户端:

package ClientTest2;

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

public class MyClient2 {


	public MyClient2(){
		
		try {
			//连接本机9999端口
			Socket s = new Socket("127.0.0.1",9999);
			System.out.println("连接成功!");
			//连接后  向服务器发送信息
			
			while(true){
				System.out.println("请输入要发送给服务器的数据:");
				InputStreamReader isr = new InputStreamReader(System.in);
				BufferedReader br = new BufferedReader(isr);
				String outinfo = br.readLine();
				PrintWriter pw =new PrintWriter(s.getOutputStream(),true);
				pw.println(outinfo);
				if(outinfo.equals("bye")){
					System.out.println("断开连接");
					s.close();
					break;
				}
				//读取从服务器反馈回来的信息
				InputStreamReader isr2 = new InputStreamReader(s.getInputStream());
				BufferedReader br2 = new BufferedReader(isr2);
				System.out.println("收到服务器的反馈信息:"+br2.readLine());
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		MyClient2 mc2 = new MyClient2();
	}

}

运行结果:

   服务器端:

  客户端:

抱歉!评论已关闭.