Problema conexão, transferencia e manipulação de arquivo

Yo, consegui fazer uma aplicação com tudo até agora, mas não consigo mandar de volta pro servidor, só consigo receber dele…
pode me ajudar nesta questão que está me tirando de minha paz interior. :x

package servico;

import java.net.*;
import java.io.*;

public class FileServer {

	public void sendFile() throws IOException {
		ServerSocket servsock = new ServerSocket(13267);
		boolean bool = true;
		while (bool) {
			System.out.println("Waiting...");

			Socket sock = servsock.accept();
			System.out.println("Accepted connection : " + sock);

			File myFile = new File("C:/Publico/teste.xls");
			byte[] mybytearray = new byte[(int) myFile.length()];
			FileInputStream fis = new FileInputStream(myFile);
			BufferedInputStream bis = new BufferedInputStream(fis);
			bis.read(mybytearray, 0, mybytearray.length);
			OutputStream os = sock.getOutputStream();
			System.out.println("Sending...");
			os.write(mybytearray, 0, mybytearray.length);
			os.flush();
			sock.close();

		}
	}
}
package servico;
import java.net.*;
import java.io.*;

public class FileClient{
  public void receberFile() throws IOException{
	  int filesize=6022386; // filesize temporary hardcoded

	    long start = System.currentTimeMillis();
	    int bytesRead;
	    int current = 0;
	    // localhost for testing
	    Socket sock = new Socket("127.0.0.1",13267);
	    System.out.println("Connecting...");

	    // receive file
	    byte [] mybytearray  = new byte [filesize];
	    InputStream is = sock.getInputStream();
	    FileOutputStream fos = new FileOutputStream("exemplo.xls");
	    BufferedOutputStream bos = new BufferedOutputStream(fos);
	    bytesRead = is.read(mybytearray,0,mybytearray.length);
	    current = bytesRead;

	    
	    do {
	       bytesRead =
	          is.read(mybytearray, current, (mybytearray.length-current));
	       if(bytesRead >= 0) current += bytesRead;
	    } while(bytesRead > -1);

	    bos.write(mybytearray, 0 , current);
	    bos.flush();
	    long end = System.currentTimeMillis();
	    System.out.println(end-start);
	    bos.close();
	    sock.close();
  }
}
package teste;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import servico.*;

import javax.swing.JButton;
import javax.swing.JFrame;


public class MeuNote extends JFrame implements ActionListener {

	
	private JButton botao1 = new JButton("Receber arquivo");

	public MeuNote() {
		// Define o título da janela
		super("Meu Notepad");
		this.montaJanela();
	}

	private void montaJanela() {
		botao1.addActionListener(this);
		this.getContentPane().add(botao1, BorderLayout.NORTH);
		setSize(640, 480);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
	}

	public void actionPerformed(ActionEvent event) {

		try {
			new FileClient().receberFile();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	public static void main(String[] args) {
		// Cria objeto:
		new MeuNote();
		try {
			new FileServer().sendFile();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}