【牛客带你学编程Java方向】项目练习第8期(截止6.1)

    
Java项目练习:第8期
练习时间:5月16日-6月1日(2周)
活动规则:
  • 每一期一个项目,届时会开新帖发布
  • 学员直接将答案提交到该贴评论区即可
  • 两周后,公布导师参考答案
  • 导师评选出当期最佳代码(将被设置为精彩回复

奖励:牛客大礼包一份(牛客定制水杯 牛客定制笔 牛客定制程序员徽章 滑稽抱枕)
参与方式:直接将你的代码回复到本帖评论区

-----------------------------------------------------

本期题目:

基于Tcp协议的简单Socket通信模型(60分钟)

需求描述:

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。本项目要求基于TCP协议,模拟实现简单的客户端服务器通信模型,要求单独实现客户端服务端两部分逻辑组件,并能够在不同进程下独立运行相互通信。

考察知识点:

  • 网络编程相关基础
  • TCP通信Java实现API
  • Socket的CS通信模型理解与实现

参考知识点:《java基础入门》第10章

参与方式:直接将你的代码回复到本帖评论区

全部评论
/** * 基于TCP/IP的Socket通信实现 */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /* * 服务器端代码 */ public class ServerSocketDemo { public static void main(String[] args) throws IOException { //创建服务器端 ServerSocket ss = new ServerSocket(8080); System.out.println("服务器已经启动..."); //监听 Socket s = ss.accept(); //获取输入流 InputStream is = s.getInputStream(); //包装一下 BufferedReader br = new BufferedReader(new InputStreamReader(is)); //读取数据 System.out.println(br.readLine()); //获取输出流 OutputStream os = s.getOutputStream(); //包装一下 PrintWriter pw = new PrintWriter(new OutputStreamWriter(os),true); //回写数据 pw.write("Hello User!"); pw.flush(); //释放资源 br.close(); is.close(); pw.close(); os.close(); s.close(); ss.close(); System.out.println("服务器已经关闭"); } } /** * 基于TCP/IP的Socket通信实现 */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; /* * 客户端 */ public class SocketDemo { public static void main(String[] args) throws IOException, IOException { //创建套接字 Socket s = new Socket(InetAddress.getLocalHost(),8080); System.out.println("客户端启动了"); //获得输出流 OutputStream os = s.getOutputStream(); //包装一下 PrintWriter pw = new PrintWriter(new OutputStreamWriter(os),true); //输出数据 pw.println("Hellw Word!"); //刷新数据 pw.flush(); //获取输入流 InputStream is = s.getInputStream(); //包装一下 BufferedReader br = new BufferedReader(new InputStreamReader(is)); //读取响应 String line; while((line=br.readLine())!=null){ System.out.println(line); } //释放资源 pw.close(); os.close(); br.close(); is.close(); s.close(); System.out.println("客户端关闭了"); } }
点赞 回复 分享
发布于 2018-05-18 18:05

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务