026.4 网络编程 上传文本
程序员文章站
2022-04-06 12:57:33
一般是已经封装好的jar包里面,这里通过原始步骤实现一下这个功能##############################################################################客户端步骤:1、确定连接地址和端口2、读取文件3、获取socket输出流4、发送 ......
一般是已经封装好的jar包里面,这里通过原始步骤实现一下这个功能
##############################################################################
客户端步骤:
1、确定连接地址和端口
2、读取文件
3、获取socket输出流
4、发送
5、向服务器发送结束标记,让服务器结束读取动作
6、接收返回信息
7、关闭资源
###uploadtextclient.java
public class uploadtextclient { /** * @param args * @throws ioexception * @throws unknownhostexception */ public static void main(string[] args) throws unknownhostexception, ioexception { system.out.println("上传文件客户端运行......"); // 客户端: // 步骤: // 1,创建socket,明确地址和端口。 socket s = new socket("192.168.1.223", 10006); // 2,源:读取文本文件。获取需要转换的数据。 bufferedreader bufr = new bufferedreader(new filereader("tempfile\\client.txt")); // 3,目的:网络,socket输出流。将录入的数据发送到服务端。 printwriter out = new printwriter(s.getoutputstream(),true); // 4,频繁的读写操作。 string line = null; while((line=bufr.readline())!=null){ out.println(line); } //给服务端发送一个结束标记。这个标记是约定标记。有点麻烦。可以更简单。使用socket对象的shutdownoutput(); s.shutdownoutput();//向服务端发送了结束标记。可以让服务端结束读取的动作。 // 5,源:socket,socket读取流,读取服务端发回来的上传成功信息。 bufferedreader bufin = new bufferedreader(new inputstreamreader(s.getinputstream())); string info = bufin.readline(); system.out.println(info); // 6,关闭资源。 bufr.close(); s.close(); } }
###########################################################################################
服务端步骤:
1、建立服务端socket
2、接收客户端socket
3、建立文件对象
4、多次接收,写入
5、返回接收完毕信息
6、关闭资源
###uploadtextserver.java
public class uploadtextserver { /** * @param args * @throws ioexception */ public static void main(string[] args) throws ioexception { system.out.println("上传文本服务端运行...."); // 服务端: // 思路: // 1,创建服务端socket 明确端口。 serversocket ss = new serversocket(10006); while (true) { // 获取客户端对象。 socket s = ss.accept(); system.out.println(s.getinetaddress().gethostaddress()+".....connected"); // 2,源:socket输入流。读取客户端的发过来的数据。 bufferedreader bufin = new bufferedreader(new inputstreamreader( s.getinputstream())); // 3,目的:文件。 printwriter pw = new printwriter(new filewriter("tempfile\\server.txt"),true); // 4,频繁的读写操作。 string line = null; while ((line = bufin.readline()) != null) { // if("over".equals(line)){ // break; // } pw.println(line); } // 5,发回给客户端上传成功字样。 printwriter out = new printwriter(s.getoutputstream(),true); out.println("上传成功"); // 6,关闭客户端。 s.close(); } } }
上一篇: C++结构体与排列三平台出售