- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络
实验报告
(TCP客户/服务器程序设计)
班级:学号:201008202102
姓名:王美霞
一、实验目的
实现在TCP方式下客户端向服务器端的文件传送过程。
二、实验性质
综合与设计性实验。
三、实验条件
装有以太网卡,配置网络协议的并能实现联网的两台微机。
四、实验要求
实现TCP的连接建立、文件传送和连接释放的三个阶段,并将任一文件传送到服务器端,编程完成该应用程序的设计(编程语言不限)。实验报告要求有实现过程的流程图,对主要的函数及其参数给予说明,要有实现过程的主要程序段,并对各段程序的功能及作用进行说明。
五、实验思想和流程图
TCP协议属于传输层协议,通过面向连接、端到端和可靠的数据包发送。在此,利用java实现简单的服务器和客户端。
服务器端:
第一步,建立监听服务,继承 Runnable接口和ActionListener()类,在serve类中创建ServerSocket对象;
第二步,等待连接,接受客户端请求;
第三步,连接成功后,通过输入流中有客户端发送消息,输出流向客户端发送消息;
第四步,关闭连接。
public ServerFrame方法用来进行窗体的设计,并且用try-catch语句作为监听,建立客户端与服务器的连接。actionPerformed(ActionEvent e)方法作为点击发送按钮的操作,进行数据的发送和在showchat窗口上进行显示。run()函数用来显示客户端发送的信息,并且当有信息时会调用Player(int i)方法
客户端:
第一步,在ClientFrame类中创建Socket的对象,输入IP—IPin和端口号portIn;
第二步,连接服务器;
第三步,通过创建数据输入流 inFromServer和输出流outToServer对象接收和发送消息;
第四步,关闭连接。
ClientFrame(String s)方法用于界面的设计。actionPerformed(ActionEvent e)用于监听点击按钮后要执行的东西,用第一个if语句用于connect按钮,若点击connect则连接服务器,用try-catch语句实现。第二个if语句用于send按钮,发送信息给服务器,并在showchat显示。run()方法中用try-catch实现显示收到服务端发来的信息和异常处理,并实现声音的提示。
六、主要代码及其说明
1.Server服务器端界面及实现通信,Server.java源代码为:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;
public class ServerFrame extends JFrame implements Runnable,ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
JButton send;//发送按钮
JTextField showIP,showPort;//显示端口号、IP地址
JTextArea showchat,chat;//显示聊天窗口和发送聊天窗口
Thread thread = null;//创建一个线程
DataInputStream inFromClient=null ;//数据输入
DataOutputStream outToClient=null ;//数据输出
ServerSocket serverSocket=null ;
Socket connectToClient=null ;//创建一个套接字
String OutStr,portIn;
File musicFile;
URI uri;
URL url;
AudioClip clip = null;
String []musicName={msg.wav,Global.wav};
public ServerFrame(String s){
setTitle(s);
send=new JButton(发送);
showIP=new JTextField(127.0.0.1,12);
showPort=new JTextField(12);
showchat= new JTextArea();
showchat.setEditable(false);
showIP.setEditable(false)
文档评论(0)