发布时间 : 星期一 文章java实验七八(河北工业大学)更新完毕开始阅读529a10c8a58da0116c1749c2
河北工业大学城市学院2010级网络编程技术试验指导书
在服务器端反馈一条信息
客户端可以收到
2、使用ServerSocket类和Socket类实现按如下协议通信的服务器端和客户端程序。服务器程序的处理规则如下: 1) 向客户端程序发送Verifying Server!。
2) 若读口令次数超过3次,则发送Illegal User!给客户端,程序退出。否则向下执行步骤3)。
3) 读取客户端程序提供的口令。
4) 若口令不正确,则发送PassWord Wrong!给客户端,并转步骤2),否则向下执行步骤5)。
5) 发送Registration Successful!给客户端程序。
共16页,第9页
河北工业大学城市学院2010级网络编程技术试验指导书
客户端程序的处理规则如下: 1) 读取服务器反馈信息。
2) 若反馈信息不是Verifying Server!,则提示Server Wrong!,程序退出。否则向下执行步骤3)
3) 提示输入PassWord并将输入的口令发送给服务器。 4) 读取服务器反馈信息。
5) 若反馈信息是Illegal User!,则提示Illegal User!,程序退出。否则向下执行步骤6)
6) 若反馈信息是PassWord Wrong!,则提示PassWord Wrong!,并转步骤3),否则向下执行步骤。
7) 输出Registration Successful!。 服务器端源程序
import java.io.*; import java.net.*;
public class ServerComputer {public ServerComputer(int port)
{ Server server=new Server(port); server.start(); }
public static void main(String[] args) { new ServerComputer(7777); } }//服务器线程
class Server extends Thread { //使用端口号 int port;
ServerSocket server; Socket socket; //服务器输出流
DataOutputStream outStream=null; //服务器输入流
DataInputStream inStream=null; public Server(int port) { try
{ this.port=port;
server=new ServerSocket(port); } catch(Exception e)
{ System.out.println(e.toString()); } }
public void run() { try
共16页,第10页
河北工业大学城市学院2010级网络编程技术试验指导书
{ //监听用户连接 socket=server.accept();
outStream=new DataOutputStream(socket.getOutputStream());
inStream=new DataInputStream(socket.getInputStream()); //服务器准备好,可以进行通讯
System.out.println(\向客户端发送一个反馈 String s1=new String(\ outStream.writeUTF(s1); String str1=new String(\ String str=new String(\ int count=0; while(true)
{ //读取从客户端发送的信息 str=inStream.readUTF(); System.out.println(str); if(str.equals(\
{str1=\ else
{str1=\ outStream.writeUTF(str1); count++; if(count==3)
{str1=\将信息重新向客户端发送 } }
catch(Exception e)
{ System.out.println(e.toString()); } } }
客户端源程序
package asdasdasd; import java.net.*; import java.io.*;
public class SocketClient { Socket s=null;
DataInputStream inStream=null; DataOutputStream outStream=null; public SocketClient() { waitData(); } void waitData()
{ try{s=new Socket(\
inStream=new DataInputStream(s.getInputStream());
outStream=new DataOutputStream(s.getOutputStream());} catch(IOException e) {}
while(true)
共16页,第11页
河北工业大学城市学院2010级网络编程技术试验指导书
{ try
{ String str=inStream.readUTF(); System.out.println(str); if(!str.equals(\
{System.out.println(\ else
{ for(int i=0;i<2;i++) {String str1=new String(\ String str2=new String(\
System.out.println(\
BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); str1=input.readLine(); System.out.println(str1); outStream.writeUTF(str1); str2=inStream.readUTF(); System.out.println(str2);
if(str2.equals(\
{System.out.println(\ else if(str2.equals(\
{System.out.println(\
input = new BufferedReader(new InputStreamReader(System.in)); str1=input.readLine();
outStream.writeUTF(str1); } else
{ System.out.println(\ }} }
catch(Exception e)
{ System.out.println(e.toString()); break; } } }
public static void main(String[] args) { new SocketClient(); } }
共16页,第12页