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

来源:互联网 发布:java jdbc学生管理 编辑:程序博客网 时间:2024/05/01 07:55

今天才开始接触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());//服务器接受到数据后,反馈数据给客户端//需要定义服务器自己的PrintWriterPrintWriter pw = new PrintWriter(s.getOutputStream(),true);pw.println("客户端你好,我是服务器");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) {// TODO Auto-generated method stubMyServer1 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 blocke.printStackTrace();}}public static void main(String[] args) {// TODO Auto-generated method stub MyClient1  mc = new MyClient1();}}

运行效果:

服务器:

             

客户端:

               

原创粉丝点击