网络编程-上传文本并给出反馈

来源:互联网 发布:网络中文教师 编辑:程序博客网 时间:2024/06/06 04:06

package $10_上传文本并给出反馈;

import java.io.BufferedReader;

import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;

/*
* 我把文件上传给你了,你没有告诉我是否成功啊。
*
* 原因很简单,就是因为服务器无法判断结束。
* 怎么办呢?
* A:自定义结束标记
* 我在多写一条数据,告诉服务器,你可以释放了。
* B:Socket提供了这个方案。
* a.shutdownOutput(); // 禁用输出流
*/
public class Client {
public static void main(String[] args) throws IOException {
// 创建发送数据的Socket对象,并指定主机名,端口
Socket a = new Socket(“192.168.1.103”, 10086);
// (包装)获取Scoket对象的输出流
BufferedWriter b = new BufferedWriter(new OutputStreamWriter(
a.getOutputStream()));
// 读取文件并写入
BufferedReader c = new BufferedReader(new FileReader(“a.txt”));
String str = null;
while ((str = c.readLine()) != null) {
b.write(str);
b.newLine();
b.flush();

    }    // b.write("你可以释放了");    // b.newLine();    // b.flush();    a.shutdownOutput(); // 禁用输出流    // 接收反馈    BufferedReader aa = new BufferedReader(new InputStreamReader(            a.getInputStream()));    String stre = aa.readLine();    System.out.println(stre);    // 释放资源    c.close();    a.close();}

}
package $10_上传文本并给出反馈;

import java.io.BufferedReader;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
public static void main(String[] args) throws IOException {
// 创建接收数据的Socket对象,并指定端口
ServerSocket a = new ServerSocket(10086);
// 监听客户端是否连接
Socket b = a.accept();

    // (包装)获取Socket对象的输入流    BufferedReader c = new BufferedReader(new InputStreamReader(            b.getInputStream()));    // 读取数据并写入文本    BufferedWriter d = new BufferedWriter(new FileWriter("Client.java"));    String str = null;    while ((str = c.readLine()) != null) {// 阻塞式        // if(str.equals("你可以释放了")){        // break;        // }        d.write(str);        d.newLine();        d.flush();    }    // 给出反馈(包装)    BufferedWriter aa = new BufferedWriter(new OutputStreamWriter(            b.getOutputStream()));    aa.write("收到");    aa.newLine();    aa.flush();    // 释放资源    d.close();    b.close();    a.close();}

}

0 0
原创粉丝点击