public class Beijing
{ public static void main(String args[])
{ Beijing_Frame beijing_win=new Beijing_Frame();
beijing_win.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0); } });
beijing_win.validate(); } }
class Shanghai_Frame extends Frame implements Runnable,ActionListener { TextField out_message=new TextField(\发送数据到北京:\ TextArea in_message=new TextArea();
Button b=new Button(\发送数据包到北京\ Shanghai_Frame() { super(\我是上海\ setSize(200,200); setVisible(true);
b.addActionListener(this); add(out_message,\ add(in_message,\ add(b,\
Thread thread=new Thread(this); thread.start();//线程负责接收数据包 }
public void actionPerformed(ActionEvent event) //点击按扭发送数据包 { byte buffer[]=out_message.getText().trim().getBytes(); try{ InetAddress address=InetAddress.getByName(\ DatagramPacket data_pack=new DatagramPacket(buffer,buffer.length, address,888);//构造发送数据包
DatagramSocket mail_data=new DatagramSocket();
in_message.append(\数据报目标主机地址:\ in_message.append(\数据报目标端口是:\ in_message.append(\数据报长度:\ mail_data.send(data_pack); }
catch(Exception e){} }
public void run() // //接收数据包 { DatagramPacket pack=null; DatagramSocket mail_data=null; byte data[]=new byte[8192]; try{ pack=new DatagramPacket(data,data.length); mail_data=new DatagramSocket(666); }
catch(Exception e){} while(true)
{ if(mail_data==null) break; else
try{ mail_data.receive(pack); int length=pack.getLength();
InetAddress adress=pack.getAddress(); int port=pack.getPort();
String message=new String(pack.getData(),0,length); in_message.append(\收到数据长度:\
in_message.append(\收到数据来自:\端口:\ in_message.append(\收到数据是:\ }
catch(Exception e){} } } }
public class Shanghai { public static void main(String args[])
{ Shanghai_Frame shanghai_win=new Shanghai_Frame(); shanghai_win.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0); } });
shanghai_win.validate(); } }
10、实验
1)本实验是基于TCP协议的C/S模式的图形界面通讯程序,以可视化操作模式,实现服务器与客户端之间的通信操作。客户端提出获取时间请求,服务器给出应答,在客户端显示当前服务器的时间(1)建立服务器端处理程序(2)建立客户端程序
2)在实验三的基础上将客户端获取的数据保存到服务器上的文件中,当客户端需要获取数据时,从服务器端获取到相应数据。具体内容如下:a、编写一个登陆界面,在该界面中包括一个用户名输入的文本框,在其中输入用户名和密码,当该用户名和密码为服务器上以保存的用户信息时,则准予用户登陆系统,跳转到登陆成功窗口。b、在登陆成功窗口建立菜单栏,包括“文件”,“操作”两个菜单,文件菜单中包括“退出”菜单项,操作菜单中包括录入和查询页面。在点击“录入”时,将打开一个用户信息录入窗口,在其中录入用户信息,包括用户名,密码和确认密码,单选按钮的性别,下拉列表的省份,以及下拉列表的城市,(随着省份列表框的选项不同,城市列表框的内容产生变化),复选框的个人爱好。可输入多组用户信息,这些用户信息会被客户端发送到服务器上所建立的数据文件中进行保存。点击“查询”子菜单项时,在查询窗口中显示服务器上数据文件中保存的所有用户信息,或根据自定义条件查询特定内容。
3)基于UDP协议的C/S模式的图形界面通讯程序,以可视化操作模式,实现服务器与客户端之间的通信操作。(1)建立服务器端聊天程序(2)建立客户端聊天程序

