《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx
- 文档编号:19334599
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:49
- 大小:1.70MB
《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx
《《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx》由会员分享,可在线阅读,更多相关《《网络编程技术》实验指导书第二部分软121蔡钺122573Word格式.docx(49页珍藏版)》请在冰豆网上搜索。
”+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);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络编程技术 网络 编程 技术 实验 指导书 第二 部分 121 蔡钺 122573