某笔试题二(socket)
来源:互联网 发布:java访问次数 编辑:程序博客网 时间:2024/06/04 00:21
最近有在笔试和面试,做到这么一道题,简单把自己的想法写下了并实现,有不合适或者错误的地方请大家多多指正。
题目描述
现分别有一个通过socket发送文件的客户端以及一个通过socket接收文件的服务端:
a) 客户端从/tmp/src.data文件中读取文件内容,通过网络socket将文件内容发给服务端
b) 服务端监听10000端口,当10000端口接收到客户端连接请求时,从连接读取文件内容,并写入/tmp/dst.data中
试写出客户端和服务端的具体实现代码
a) 客户端从/tmp/src.data文件中读取文件内容,通过网络socket将文件内容发给服务端
b) 服务端监听10000端口,当10000端口接收到客户端连接请求时,从连接读取文件内容,并写入/tmp/dst.data中
试写出客户端和服务端的具体实现代码
服务端:
package test;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;public class Server {public static void main(String[] args) throws IOException{ServerSocket server = new ServerSocket(12700);get();while(true){Socket socket = server.accept();PrintStream ps = new PrintStream(socket.getOutputStream());//读取字节数据ps.print(get());ps.close();socket.close();}}public static String get() throws IOException {FileInputStream fis = new FileInputStream(System.getProperty("user.dir") + "/src/test/tmp/src.data");byte[] bbuf = new byte[1024];int hasReaded = 0;StringBuffer buffer = new StringBuffer();while( (hasReaded = fis.read(bbuf)) > 0){buffer.append(new String(bbuf, 0 , hasReaded));}return buffer.toString();}}
客户端:
package test;import java.io.BufferedReader;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;import java.net.UnknownHostException;public class MySocket {public static void main(String[] args) throws UnknownHostException, IOException{Socket socket = new Socket("127.0.0.1", 12700);BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));writeTo(br.readLine());socket.close();}public static void writeTo(String str) throws IOException{FileOutputStream fileOutputStream = new FileOutputStream("dst.data");for(int i = 0;i < str.length();i++){System.out.println(str.charAt(i));fileOutputStream.write((byte)str.charAt(i));}fileOutputStream.close();}}
阅读全文
0 0
- 某笔试题二(socket)
- 华为笔试题(二)
- 笔试题练习(二)
- Java笔试题(二)
- C++笔试题(二)
- C++笔试题(二)
- 数据库笔试题(二)
- 新浪笔试题(二)
- .net笔试题(二)
- 华为笔试题(二)
- java笔试题(二)
- C#笔试题(二)
- JAVA笔试题(二)
- 笔试题整理(二)
- 笔试题问题(二)
- 分享:某单位Java笔试题(二)
- C/C++笔试题集(二)
- 各公司笔试题收藏(二)
- Caffe添加自定义层-自定义loss
- 字段数据类型
- 卷积深入浅出
- Unity3D简单实现游戏对象跟随鼠标旋转
- Qt自定义图片按钮并设置方向
- 某笔试题二(socket)
- 判断单链表是否带环?若带环,求环的长度,求环的入口点
- MAVLink—最强大的微型飞行器通信协议
- 数字串重排后输出最小数据 java
- Mysql学习之路06-外键
- 关于调用Dao层Save方法后产生Write operations are not allowed in read-only mode (FlushMode.MANUAL)错误导致访问页面显示404
- python初学温度转换实例讲解
- [ZJOI2007]时态同步(树形DP+DFS)
- win10上安装GPU_tensorflow