java网络编程实验报告

实验一 ApplicationApplet程序调试运行

实验目的:熟悉所用系统的上机方法与步骤。

实验内容:编写一个Java Application和一个Applet程序,输出以下信息:                   Hello,Java World!

1、Java Application

源程序:

//HelloWorldApp.java

import java.io.*;

public class HelloApplication

{

    public static void main(String[] args)

         {

                System.out.println("Hello Java World!");

          }

}

编译:javac HelloApplication.java

解释执行:java  HelloApplication

试验结果:在字符界面中输出字符串:Hello Java World!

2、Java Applet

源程序:

import java.awt.Graphics;

import java.applet.Applet;

public class HelloWorld extends Applet

{

       String s;

       public void init()

       {

              s="Hello,Java Word!";

       }

       public void paint(Graphics g)

       {

              g.drawString(s,25,25);

       }

}

该程序编译后生成HelloWorld.class文件,为了运行这个程序,需要编写一个html文件来调用它,html文件和其放在同一目录,

下面为HelloWorld.html文件的内容:

<html>

<applet code=HelloWorld.class width=250 height=250>

</applet>

</html>

编译:javac HelloWorld.java

解释执行:appletviewer HelloWorld.html

试验结果:在浏览器界面中输出字符串:Hello ,Java World!

 

第二篇:Java网络编程课程设计

Java网络编程课程设计

                   院:计算机与科学技术学院

               专业班级:    

  随着网络的发展,计算机的功能越来越强大,人们对网络的也越来越依赖,聊天工具也日益普及,人们习惯了使用类似QQ 、MSN这样的网络聊天工具,运用Java知识,我们可以做一个简单的网络聊天工具,可以实现简单的聊天功能。

    Java编写的聊天工具是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了java.awt包,java.swing包以及java.util包等。程序实现了聊天室的基本功能,其中有:

1、启动服务器。

2、进入客户端界面。

3、登录聊天室。

4、发送信息(实现按回车键发送消息)。

5、关闭服务器。

   在功能上,该软件采用套接字实现网络中的数据传输,尽量使用某个或某些应用层的协议实现系统的部分功能,系统设计规范合理,操作流程方便简单。

聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:

在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。

1.首先通过继承JFrame类构造服务器界面。

2.设计客户端程序使其能够完成正常的通信功能,并且可以更改背景颜色,设置字体颜色。

3.设计侦听程序,使其显示登录的ip地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序实现聊天功能。

聊天系统的详细设计:

界面设计:主要由类ChatRoom来实现,界面实际总体如下:输入昵称的文本框,输入IP地址的文本框以及输入端口的文本框(可设置背景色);侦听,连接的按钮(可设置字体);推出按钮;接受消息的文本域(可设置前景色);发送消息文本框;发送按钮;插入图片。

聊天室程序设计详细代码如下:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.net.*;

import java.io.*;

import java.util.*;

public class ChatRoom extends JFrame implements ActionListener, Runnable,KeyListener

{

       Image Image;

       private TextArea ta;

       private JTextField ip;

       private JTextField port;

       private JButton ss_server;

       private JButton ss_client;

       private JTextField send_text;

       private JTextField name;  

       private JButton ss_send;

       private JButton ss_exit;

       private Socket skt;

        public void keyReleased(KeyEvent f){}

        public void keyPressed(KeyEvent f){

             if(f.getKeyCode()== KeyEvent.VK_ENTER){

                    try{

              PrintWriter pw = new PrintWriter(skt.getOutputStream());

              String s1=name.getText();

              String s = send_text.getText();

             

              if(s==null) return;

              Calendar ca= new GregorianCalendar();

      int hh = ca.get(Calendar.HOUR_OF_DAY);

      int mm = ca.get(Calendar.MINUTE);

      int ss = ca.get(Calendar.SECOND);

      String time = new String(hh + ":" + mm + ":" + ss + " ");

      ta.append(time+s1+"说:"+"\n"+s+"\n");

      String s3=time+s1+"说:"+"\n"+s;

              pw.println(s3);

              pw.flush();

              send_text.setText("");

       }

       catch(Exception e){

              ta.append("发送失败!\n");

       }

}

}

public void keyTyped(KeyEvent f){}

       public void run()

       {

       try{

              BufferedReader br = new BufferedReader(new InputStreamReader(skt.getInputStream()));

              while(true){

                     String s = br.readLine();

                     if(s==null) break;

                     ta.append(s + "\n");

              }

       }

       catch(Exception e){

              e.printStackTrace();

       }           

       }

      

       public void actionPerformed(ActionEvent e)

       {

              if(e.getSource()==ss_server){

                     doServer();

              }

              if(e.getSource()==ss_client){

                     doClient();

              }

              if(e.getSource()==ss_send){

                     doSend();

              }

              if(e.getSource()==ss_exit){

                     doexit();

              }

       }

      

       public void doServer()

       {

       try{

              ServerSocket server = new ServerSocket(Integer.parseInt(port.getText()));

              skt = server.accept();

              ta.append("连接服务器成功!\n");

              new Thread(this).start();

       }

       catch(Exception e){

              ta.append("服务器启动失败!\n");

       }

       }

      

       public void doClient()

       {

       try{

              skt = new Socket(ip.getText(), Integer.parseInt(port.getText()));

              ta.append("连接服务器成功!\n");

              new Thread(this).start();

       }

       catch(Exception e){

              ta.append("连接失败!\n");

       }           

       }

      

       public void doSend()

       {

             

       try{

              PrintWriter pw = new PrintWriter(skt.getOutputStream());

              String s1=name.getText();

              String s = send_text.getText();

             

              if(s==null) return;

              Calendar ca= new GregorianCalendar();

      int hh = ca.get(Calendar.HOUR_OF_DAY);

      int mm = ca.get(Calendar.MINUTE);

      int ss = ca.get(Calendar.SECOND);

      String time = new String(hh + ":" + mm + ":" + ss + " ");

      ta.append(time+s1+"说:"+"\n"+s+"\n");

      String s3=time+s1+"说:"+"\n"+s;

              pw.println(s3);

              pw.flush();

              send_text.setText("");

       }

       catch(Exception e){

              ta.append("发送失败!\n");

       }

}

public void doexit()

       {

             

              System.exit(0);

              }

      

       public ChatRoom()

       {

              Panel a1 = new Panel();

    Panel a2 = new Panel();

    Panel a3 = new Panel();

              this.setTitle("聊天室");

              this.setBounds(200,200,600,500);

              Container cc = this.getContentPane();

             

              JPanel p1 = new JPanel();

              cc.add(p1, BorderLayout.NORTH);

              p1.setBackground(new Color(200,200,250));

             

              ta = new TextArea();

              cc.add(ta, BorderLayout.CENTER);

              JPanel p2 = new JPanel();

              cc.add(p2, BorderLayout.SOUTH);

              p2.setBackground(new Color(250,150,200));

              ta.setForeground(new Color(0,0,250));

              JLabel p3 = new JLabel(new ImageIcon("IMG0064A.jpg"));

              cc.add(p3, BorderLayout.EAST);

             

              p1.add(new JLabel("昵称:"));

              name=new JTextField("",6);

              p1.add(name);

    name.setFont(new Font("宋体",Font.BOLD,14));

              p1.add(new JLabel("IP: "));

              ip = new JTextField("127.0.0.1", 15);

              p1.add(ip);

              p1.add(new JLabel("Port: "));

              port = new JTextField("8888", 4);

              p1.add(port);

              ss_server = new JButton("侦听");

              ss_server.setForeground(new Color(150,100,250));

              ss_server.setFont(new Font("宋体",Font.BOLD,14));

              p1.add(ss_server);

              ss_client = new JButton("连接");

              ss_client.setForeground(new Color(150,100,250));

              ss_client.setFont(new Font("宋体",Font.BOLD,14));

              p1.add(ss_client);

              ss_exit = new JButton("退出");

              ss_exit.setForeground(new Color(150,100,250));

              ss_exit.setFont(new Font("宋体",Font.BOLD,14));

                     p1.add(ss_exit);

        

              p2.setLayout(new BorderLayout());

              p2.add(new JLabel("发送消息:"),BorderLayout.WEST);

              p2.setBackground(new Color(200,200,250));

              send_text = new JTextField("在?");

              p2.add(send_text, BorderLayout.CENTER);

              ss_send = new JButton("发送");

              p2.add(ss_send, BorderLayout.EAST);

             

              ss_exit.addActionListener(this);

    send_text.addKeyListener(this);

              ss_server.addActionListener(this);

              ss_client.addActionListener(this);        

              ss_send.addActionListener(this);         

              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       

       }

       public static void main(String[] args)

       {

              new ChatRoom().setVisible(true);

       }

该代码运行的结果如截图:

    该Java程序实现了基本的聊天功能,,并且还可修改自己的昵称,和退出功能,可以满足两个人之间的简单的对话功能。程序虽然有点短,也基本涵盖了课本上所学的知识,同时加深理解了课本上的知识,锻炼了自己的动手能力。

相关推荐