最简单网络编程之客户端往服务器端送东西02

来源:互联网 发布:代理ip软件 编辑:程序博客网 时间:2024/05/21 20:26
package com.lin;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class MusicTCPServer {private BufferedInputStream bufferedInputStream;// 创建BufferedReader对象private ServerSocket server;// 创建服务套接字对象private Socket socket;    private BufferedOutputStream bufOutStream =null;public void getServer() {try {server = new ServerSocket(8998);System.out.println("MusicTCPServer服务器套接字已创建成功");while (true) {System.out.println("等待客户机的连接");socket = server.accept();//等待客户机的连接,进入等待状态,并返回这个客户端对象//当客户端能够连接上之后,读取客户端传过来的东西System.out.println("连接成功");//注意BufferedReader是用于处理字符串的,而bufferedInputStream是用来处理二进制的    bufferedInputStream=new BufferedInputStream(socket.getInputStream());    //注意c:\\1.mp3原本没有bufOutStream =new BufferedOutputStream(new FileOutputStream("c:\\1.mp3"));getClientMessage();}} catch (Exception e) {e.printStackTrace();}}private void getClientMessage() {try {int ch=0;        while ((ch=bufferedInputStream.read())!=-1) {        //服务器向客户端传送数据        bufOutStream.write(ch);}         System.out.println("上传成功");} catch (Exception e) {e.printStackTrace();} finally {try {if (bufOutStream != null)bufOutStream.close();if (bufferedInputStream != null)bufferedInputStream.close();if (socket != null)socket.close();} catch (IOException e) {e.printStackTrace();}}}public static void main(String[] args) {MusicTCPServer tcp = new MusicTCPServer();tcp.getServer();}}

客户端

package com.lin;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.OutputStream;import java.net.*;public class MusicTCPClient {public static void main(String[] args) {Socket s = null;OutputStream os = null;BufferedInputStream bufInStream=null;BufferedOutputStream bufOutStream=null;        try {        // 建立连接        s = new Socket("127.0.0.1",8998);//在客户端建立连接要指定ip 和要链接的服务器端口        os = s.getOutputStream();//这里 的OutputStream是从Socket里获取的        bufOutStream=new BufferedOutputStream(os);        bufInStream=new BufferedInputStream(new FileInputStream("c:\\0.mp3"));        int ch=0;        while ((ch=bufInStream.read())!=-1) {        //向服务器发送东西        bufOutStream.write(ch);}          } catch (Exception e) {e.printStackTrace();}finally{try {if(bufInStream!=null)bufInStream.close();if(os!=null)os.close();if(s!=null)s.close();} catch (Exception e) {e.printStackTrace();}}}}


原创粉丝点击