77范文网 - 专业文章范例文档资料分享平台

计算机网络实验报告(3)

来源:网络收集 时间:2018-12-04 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

2.编程环境Windows(MS Visual系列,VC/VB/VS.Net;)和Linux(编辑器vi+编译器GCC)均可;

三、实验原理

1、建立客户端/服务器连接模式

所有的客户端必须连接到服务器。客户端的通信由服务器转发。A 发信息 给B = A->服务器->B。

用IP地址定位网上的计算机,一共4段,每段0-255之间,编写程序,通过Java来获取本机IP地址(本机IP地址也可以用:127.0.0.1表示,本机名称可以用:localhost来表示),通过java.net.InetAddress类来实现。

用端口(port)来对应着应用程序。确定了IP地址,还要确定对方的

程序是在哪个端口,我们才能与之通信,端口就是一个数字,0-65535之间。

用多线程监听的方式来完成服务器和客户端的交互,主要用到ServerSocket()函数。

用输入输出流BufferedReader() PrintStream()来发送消息。 2、通信传输

1) 服务器上的软件应该运行 开辟一个端口,等待客户连接 java.net.ServerSocket

2) 客户通过服务器的IP和开的端口连上服务器

java.net.Socket(既能连接又能通信) 将本机当成服务器,在本机上另外编一个程序当成客户端,服务器界面运行,等待客户连接; 客户界面上一个按钮,点击,连接服务器,当连上之后,客户标题变为“OK”,服务器标题变为“有人连上”。 3、数据流

socket是通信的纽带,socket里面有一个输入流InputStream一个输出流OutputStream,如果向输出流里面输出内容,另一方就会得到,并通过输入流读取getInputStream():得到套接字的输入数据流。getOutputStream():得到套接字的输出数据流。

工作完毕,使用流对象的close()方法关闭用于网络通信的输入、输出流,用Socket对象的close()方法关闭socket。

四、实验结果

服务器端

登陆客户端

客户端之间的交互

五、源代码

//服务器端

import javax.swing.*; import java.net.*; import java.io.*; import java.util.*;

class Server extends JFrame implements Runnable{

private ArrayList persons = new ArrayList(); private ServerSocket ss = null; public Server() { }

public void run(){

while(true){

try{

Socket s = ss.accept();

this.setSize(200,200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle(\服务器\ this.setVisible(true); try{

ss = new ServerSocket(1201);

new Thread(this).start();//启动等待连接的线程

}catch(Exception ex){}

ReceiveThread rt = new ReceiveThread(s);

}

}

persons.add(rt); rt.start();

}catch(Exception ex){}

class ReceiveThread extends Thread{

private BufferedReader br = null; private PrintStream ps = null;

public ReceiveThread(Socket s) throws Exception{

br = new BufferedReader(new InputStreamReader(s.getInputStream()));//

发送数据构造函数

}

public void run(){

while(true){//接受信息 }

try{String msg = br.readLine();//死等函数 //传给所有的客户端

for(int i=0;i

}catch(Exception ex){}

ReceiveThread rt = (ReceiveThread)persons.get(i); rt.ps.println(msg);

ps = new PrintStream(s.getOutputStream());//用于发送数据

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机网络实验报告(3)在线全文阅读。

计算机网络实验报告(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/339322.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: