《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx

上传人:b****6 文档编号:19334599 上传时间:2023-01-05 格式:DOCX 页数:49 大小:1.70MB
下载 相关 举报
《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx_第1页
第1页 / 共49页
《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx_第2页
第2页 / 共49页
《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx_第3页
第3页 / 共49页
《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx_第4页
第4页 / 共49页
《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx

《《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx》由会员分享,可在线阅读,更多相关《《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx(49页珍藏版)》请在冰豆网上搜索。

《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx

”+InetAddress.getLocalHost());

}

else

system.out.println(“Error,exceptahodtnameascommandineparameter.”);

catch(UnknownExceptione)

system.out.println(e.toString());

}

}

编译并运行程序。

2、获取URL信息,源代码如下:

import.*;

importjava.io.*;

publicclassURLTest{

publicstaticvoidmain(String[]args){

URLurl=null;

InputStreamis;

try{

url=newURL("

http:

//localhost/index.html"

);

is=url.openStream();

intc;

while((c=is.read())!

=-1)

System.out.print((char)c);

}catch(IOExceptione){

}finally{

is.close();

}catch(MalformedURLExceptione){

e.printStackTrace();

System.out.println("

文件名:

"

+url.getFile());

主机名:

+url.getHost());

端口号:

+url.getPort());

协议名:

+url.getProtocol());

3、利用URL类获取网络资源,源代码如下:

publicclassURLReader{

publicstaticvoidmain(String[]args)throwsException{

URLweb=newURL("

//166.111.7.250:

2222/"

BufferedReaderin=newBufferedReader(newInputStreamReader(web.openStream()));

StringinputLine;

while((inputLine=in.readLine())!

=null)System.out.println(inputLine);

in.close();

4、利用URLConnection对URL资源的读取,源代码如下:

publicclassURLConnectionReader{

URLConnectionwebc=web.openConnection();

//getaninstanceofURLConnection

BufferedReaderin=newBufferedReader(newInputStreamReader(

webc.getInputStream()));

//useofURLConnection

=null)System.out.println(inputLine);

5、掌握URLConnection对URL资源的写入,源代码如下:

importjava.io.*;

import.*;

publicclassReverse{

if(args.length!

=1){

System.err.println("

Usage:

javaReversestring_to_reverse"

System.exit

(1);

StringstringToReverse=args[0];

URLurl=newURL("

URLConnectionconnection=url.openConnection();

connection.setDoOutput(true);

PrintWriterout=newPrintWriter(connection.getOutputStream());

out.println("

string="

+stringToReverse);

out.close();

BufferedReaderin=newBufferedReader(newInputStreamReader(

connection.getInputStream()));

实验七:

使用TCP协议的Socket网络程序设计

掌握Socket通讯机制,掌握Socket和ServerSocket类和相关方法。

通过Socket编程,掌握网络应用程序的开发方法;

掌握利用Java提供的基本组件进行网络传输;

掌握Java提供的多线程机制,异常处理机制和低层对协议的通信机制,通过Socket编程,掌握网络应用程序的开发方法。

1、创建服务器和客户程序,在运行客户程序的计算机上输入的内容,可以在服务器屏幕上看到。

●服务器端源程序

publicclassServerClient

publicServerClient(intport)

Serverserver=newServer(port);

server.start();

Clientclient=newClient(port);

client.start();

publicstaticvoidmain(String[]args)

newServerClient(7777);

//服务器线程

classServerextendsThread

//使用端口号

intport;

ServerSocketserver;

Socketsocket;

//服务器输出流

DataOutputStreamoutStream=null;

//服务器输入流

DataInputStreaminStream=null;

publicServer(intport)

try

this.port=port;

server=newServerSocket(port);

catch(Exceptione)

System.out.println(e.toString());

publicvoidrun()

//监听用户连接

socket=server.accept();

outStream=newDataOutputStream(socket.getOutputStream());

inStream=newDataInputStream(socket.getInputStream());

//服务器准备好,可以进行通讯

serverisok,pleasecontinue!

while(true)

//读取从客户端发送的信息

Stringstr=inStream.readUTF();

TheserverreceiveString:

+str);

//将信息重新向客户端发送

outStream.writeUTF(str);

classClientextendsThread

//指定通讯端口

publicClient(intport)

//建立同本地机子的socket连接

socket=newSocket(InetAddress.getLocalHost(),port);

//客户端准备好,可以进行通讯

clientisok,pleasecontinue!

byte[]b=newbyte[1024];

Stringstr="

;

//从键盘读取字符串

intm=System.in.read(b);

str=newString(b,0,0,m-1);

//向服务器发送信息

//从服务器读取信息

str=inStream.readUTF();

TheclientreceiveString:

●客户端源程序

publicclassSocketClient

Sockets=null;

publicSocketClient()

init();

waitData();

}catch(Exceptione)

voidinit()throwsException

s=newSocket("

10.15.43.216"

8765);

inStream=newDataInputStream(s.getInputStream());

outStream=newDataOutputStream(s.getOutputStream());

s.setSoTimeout(3000);

voidwaitData()

Clientaccept:

str=Integer.toString(Integer.parseInt(str)+1);

break;

newSocketClient();

编译并运行程序。

2、使用ServerSocket类和Socket类实现按如下协议通信的服务器端和客户端程序。

服务器程序的处理规则如下:

1)向客户端程序发送VerifyingServer!

2)若读口令次数超过3次,则发送IllegalUser!

给客户端,程序退出。

否则向下执行步骤3)。

3)读取客户端程序提供的口令。

4)若口令不正确,则发送PassWordWrong!

给客户端,并转步骤2),否则向下执行步骤5)。

5)发送RegistrationSuccessful!

给客户端程序。

客户端程序的处理规则如下:

1)读取服务器反馈信息。

2)若反馈信息不是VerifyingServer!

,则提示ServerWrong!

,程序退出。

否则向下执行步骤3)这里偷懒了,没写

应该在client里的

3)if(!

str.equals("

RegistrationSuccessful!

))

4){///////////////////////////

5)byte[]b=newbyte[512];

6)intm=System.in.read(b);

7)str=newString(b,0,0,m-1);

8)outStream.writeUTF(str);

9)}

加上if(str.equals(“VerifyingServer!

”)){}

Elsestr=”ServerWrong”;

outStream.writeUTF(str);

break;

再在Server里加入检测”ServerWrong”并break的判断

10)提示输入PassWord并将输入的口令发送给服务器。

11)读取服务器反馈信息。

12)若反馈信息是IllegalUser!

,则提示IllegalUser!

否则向下执行步骤6)

13)若反馈信息是PassWordWrong!

,则提示PassWordWrong!

,并转步骤3),否则向下执行步骤。

14)输出RegistrationSuccessful!

packageJAVA实验七;

publicclassMyServerextendsThread{

publicMyServer(intport)throwsIOException

try

{

this.port=port;

server=newServerSocket(port);

catch(Exceptione)

System.out.println(e.toString());

intlimit=0;

booleansucceedflag=false;

socket=server.accept();

outStream=newDataOutputStream(socket.getOutputStream());

inStream=newDataInputStream(socket.getInputStream());

Stringstr="

VerifyingServer"

System.out.println("

serverisready,plzcontinue"

outStream.writeUTF(str);

while(limit<

3)

{

//outStream.writeUTF(str);

//verifyingserver

str=inStream.readUTF();

//读取口令

System.out.println("

Serverreceiver:

"

if(str.equals("

password\r"

{

str="

outStream.writeUTF("

succeedflag=true;

break;

}

else

PassWordWrong!

limit=limit+1;

}

if(succeedflag)

else

IllegalUser!

MyServerms=newMyServer(4567);

MyClientmc=newMyClient(4567);

ms.start();

mc.start();

publicclassMyClientextendsThread

publicMyClient(intport)

socket=newSocket(InetAddress.getLocalHost(),port);

Clientisready,plzcontinue"

@SuppressWarnings("

deprecation"

while(true)

this.sleep(1000);

Stringstr="

Clientreceive:

if(!

byte[]b=newbyte[512];

intm=System.in.read(b);

str=newString(b,0,0,m-1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1