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

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

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

今天才开始接触java网络编程,作为一个程序菜鸟,只是基本的学习了一下ServerSocket和Socket,估计连皮毛都算不上,唉,一步一步网上爬。。。

模拟服务器使用了ServerSocket对本机的9999端口进行监听,而使用Socket模拟客户端与9999端口服务器进行通信,交换数

(PS:可以在cmd中使用netstat -an来查看端口使用情况,也可以使用netstat -anb来检查端口使用详情,注意以管理员身份运行cmd)

代码如下:

服务器:

//定义一个服务器   监听9999端口
package ServerTest1;

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

public class MyServer1 {
	
	public MyServer1(){
		try {
			//用ServerSocket在9999端口进行监听
			ServerSocket ss = new ServerSocket(9999);
			System.out.println("我是服务器,我在9999端口进行监听");
			//等待某个客户端程序来连接,该函数会返回一个socket连接     
			//等待过程中程序会在下面一行代码卡住,直到有客户端进程连接
			Socket s = ss.accept();
			System.out.println("连接建立");
			
			//连接成功后   接收数据
			InputStreamReader isr = new InputStreamReader(s.getInputStream());
			BufferedReader br = new BufferedReader(isr);
			
			System.out.println("我是服务器,我接受到了数据:"+br.readLine());
			
			//服务器接受到数据后,反馈数据给客户端
			//需要定义服务器自己的PrintWriter
			PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
			pw.println("客户端你好,我是服务器");
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		MyServer1 ms = new MyServer1();
	}

}

客户端:

//定义一个客户端,用于与9999端口的服务器程序进行连接交互
package ClientTest1;

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

public class MyClient1 {

	public MyClient1(){
		try {
			//使用Socket与本机9999端口连接
			Socket s = new Socket("127.0.0.1",9999);
			
			//连接成功后   向服务器发送数据
			//我们通过pw来向s写入数据    true代表即时刷新
			PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
			pw.println("服务器你好,我是客户端^_^");
			
			//接受来自服务器的反馈
			InputStreamReader isr = new InputStreamReader(s.getInputStream());
			BufferedReader br = new BufferedReader(isr);
			
			System.out.println("我是客户端,收到反馈:"+br.readLine());
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
		MyClient1  mc = new MyClient1();
	}

}

运行效果:

服务器:

             

客户端:

               

抱歉!评论已关闭.