实现功能:
1、基于上一版本,这次实现了传输文件,要注意所有的读入写入,输入输出的接口以及写法要一致,否则会乱码
注:大家参考就好了,不要照搬啊!!!
代码展示:
客户端:
import java.io.*;
import java.net.*;
public class TalkClient {
public static void main(String args[]) {
try{
//向本机的4700端口发出客户请求
Socket socket=new Socket("127.0.0.1",4700);
//System.out.println(socket);//输出本客户端的编号,方便观察,可删除
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));//键盘输入流
DataOutputStream os=new DataOutputStream(socket.getOutputStream());//消息,文件输出流
DataInputStream is=new DataInputStream(socket.getInputStream());//消息,文件输入流
String readline;
System.out.println("样例:1 hello 或者 1 hello.txt");
while(true){
if(sin.ready())//DataOutputStream特有的方法,在不读取的情况下,查看缓冲区是否有可读取的内容
{
//如果键盘有输入,即先发消息
readline=sin.readLine();
os.writeUTF(readline);
os.flush();//刷新输出流,使Server马上收到该字符串
String[] talk=readline.split(" ");
String[] wj=talk[1].split("\\.");//分割字符串,判断是否要发送文件
if(wj.length>1)//如果要发送文件
{
File f = new File(talk[1]);
FileInputStream fis = new FileInputStream(f);//读文件对象,该文件就在根目录下
int m,len;
long l=f.length(); //获取文件长度,单位kb
if((l%512)!=0) len