JAVA实验七 使用 TCP 协议的 Socket 网络程序设计 您所在的位置:网站首页 使用udp协议的网络应用程序 JAVA实验七 使用 TCP 协议的 Socket 网络程序设计

JAVA实验七 使用 TCP 协议的 Socket 网络程序设计

2023-08-20 11:14| 来源: 网络整理| 查看: 265

实验目的:

理解Socket通信原理,掌握使用Socket和ServerSocket类进行TCP Socket通信的程序设计方法。

实验内容:

1、使用 ServerSocket 类和 Socket 类实现服务器端和客户端程序。 服务器程序的处理规则如下: 1)向客户端程序发送 Verifying Server!。 2)若读口令次数超过 3 次,则发送 Illegal User!给客户端,程序退出。否则向下执行步骤 3)。 3)读取客户端程序提供的口令。 4)若口令不正确,则发送 PassWord Wrong!给客户端,并转步骤 2),否则向下执行步骤 5)。 5)发送 Registration Successful!给客户端程序。 客户端程序的处理规则如下: 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!。 、 (1)源代码

package experiment; import java.io.*; import java.net.*; import java.util.*; public class ServerSocket1 { public static void main(String[] args) { try { ServerSocket socket=new ServerSocket(3456); Socket ser=socket.accept(); String str,sc; int count=0; PrintWriter out=new PrintWriter(ser.getOutputStream(),true); BufferedReader in=new BufferedReader(new InputStreamReader(ser.getInputStream())); out.println("Verifying Server!"); while(true) { str=in.readLine(); System.out.println("客户端:"+str); if(str.equals("1234")) { out.println("Registration Successful!"); System.out.println("服务端:Registration Successful!"); System.exit(0); } else { count++; if(count==3) { out.println("Illegal User!"); System.out.println("服务端: Illegal User!"); break; } else { out.println(" PassWord Wrong!"); System.out.println("服务端: PassWord Wrong!"); } } } out.close(); in.close(); ser.close(); socket.close(); } catch(Exception e) { System.out.println(e); } } } package experiment; import java.io.*; import java.net.*; import java.util.*; public class Socket1 { public static void main(String[] args) { try { Socket ser=new Socket("127.0.0.1",3456); Scanner scan=new Scanner(System.in); String str,sc; PrintWriter out=new PrintWriter(ser.getOutputStream(),true); BufferedReader in=new BufferedReader(new InputStreamReader(ser.getInputStream())); while(true) { str=in.readLine(); System.out.println("服务端:"+str); if(str.equals("Illegal User!")||str.equals("Registration Successful!")) { break; } System.out.print("客户端:"); sc=scan.next(); out.println(sc); } out.close(); in.close(); ser.close(); } catch(Exception e) { System.out.println(e); } } }

2、实现聊天室功能。 1)完成服务器端和一个客户端之间的聊天功能。 (1)源代码

package experiment; import java.io.*; import java.net.*; import java.util.*; public class ServerMain { public static void main(String[] args) { try { ServerSocket ss=new ServerSocket(2345); Socket s=ss.accept(); String str,sc; PrintWriter out=new PrintWriter(s.getOutputStream(),true); BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream())); Scanner scan=new Scanner(System.in); out.println("已连接成功,你好!"); do { str=in.readLine(); System.out.println("客户端:"+str); if(str.equals("bye"))break; System.out.print("服务器:"); sc=scan.next(); out.println(sc); }while(!(str.equals("bye")||sc.equals("bye"))); System.out.println("服务结束"); out.close(); in.close(); s.close(); ss.close(); } catch(Exception e) { System.out.println(e); } } } package experiment; import java.io.*; import java.net.*; import java.util.*; public class ClientMain { public static void main(String[] args) { try { Socket s=new Socket("127.0.0.1",2345); String str,sc; PrintWriter out=new PrintWriter(s.getOutputStream(),true); BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream())); Scanner scan=new Scanner(System.in); do { str=in.readLine(); System.out.println("服务器:"+str); if(str.equals("bye"))break; System.out.print("客户端:"); sc=scan.next(); out.println(sc); }while(!(str.equals("bye")||sc.equals("bye"))); System.out.println("服务结束"); out.close(); in.close(); s.close(); } catch(Exception e) { System.out.println(e); } } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有