`
ET焖猪仔
  • 浏览: 233810 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

C/S通讯,互传文件

阅读更多
上传或者下载文件客户端:
package com.et.FileClient;

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.Socket;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class FileClient extends Activity {
    /** Called when the activity is first created. */
	
    private TextView textView;
    private Button download;
    private Button upload;
    
    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        textView=(TextView) findViewById(R.id.textview);
        download=(Button) findViewById(R.id.Button01);
        upload = (Button) findViewById(R.id.Button02);
        download.setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				// TODO Auto-generated method stub
			try
			{
				Socket s=new Socket("116.29.62.23",5554);
				InputStream is=s.getInputStream();
				if (is==null)
				{
					throw new RuntimeException("stream is null");
				}
				File myTempFile = new File("/data/data/com.et.FileClient","a.jpg");
				FileOutputStream fos = new FileOutputStream(myTempFile);
				byte buf[]=new byte[1024];
				while (true)
				{
					int num = is.read(buf);
					if (num<=0)
						break;
					fos.write(buf, 0, num);
				}
				is.close();
				s.close();
			}
        catch(Exception e)
        {
        	System.out.println("发生异常:"+e);
			e.printStackTrace();
        }
			}
		});
        
        upload.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View v) {
				// TODO Auto-generated method stub
				try
				{
					Socket s=new Socket("116.29.62.23",5554);
					File file = new File("/data/data/com.et.FileClient/image.jpg");
					FileInputStream fos = new FileInputStream(file);
					DataOutputStream out = new DataOutputStream(s.getOutputStream());
					byte[] buf = new byte[1024];
					int num = fos.read(buf);
					while (num!=-1)
					{
						out.write(buf, 0, num);
						out.flush();
						num=fos.read(buf);
					}
				}
				catch(Exception e)
				{
					
				}
			}
		});
    }
}

下载文件服务器端:
package com.et.FileClient;
import java.io.*;
import java.util.*;
import java.net.*;
public class FileDownServer {
public static void main(String[] args) throws Exception {

//创建文件流用来读取文件中的数据

File file = new File("a.jpg");

FileInputStream fos = new FileInputStream(file);
ServerSocket ss = new ServerSocket(5554);
//创建网络服务器接受客户请求
while (true)
{
	
	Socket client = ss.accept();
	System.out.println("accept");
	//创建网络输出流并提供数据包装器

	OutputStream netOut = client.getOutputStream();

	OutputStream doc = new DataOutputStream(
			new BufferedOutputStream(netOut));

	//创建文件读取缓冲区

	byte[] buf = new byte[2048];

	int num = fos.read(buf);
	while (num != (-1)) {//是否读完文件
		doc.write(buf, 0, num);//把文件数据写出网络缓冲区
		doc.flush();//刷新缓冲区把数据写往客户端
		num = fos.read(buf);//继续从文件中读取数据
	}
	fos.close();
	doc.close();
}
}


}


上传文件服务器端:
package com.et.FileClient;
import java.io.*;
import java.util.*;
import java.net.*;
public class FileUpServer {
public static void main(String[] args) throws Exception {

ServerSocket ss = new ServerSocket(5554);
//创建网络服务器接受客户请求
while (true)
{
	
	Socket s = ss.accept();
	System.out.println("accept");
	//创建网络输出流并提供数据包装器

	InputStream is=s.getInputStream();
	if (is==null)
	{
		throw new RuntimeException("stream is null");
	}
	File myTempFile = new File("image.jpg");
	FileOutputStream fos = new FileOutputStream(myTempFile);
	byte buf[]=new byte[1024];
	while (true)
	{
		int num = is.read(buf);
		if (num<=0)
			break;
		fos.write(buf, 0, num);
	}
		is.close();
		s.close();
}
}
}

分享到:
评论

相关推荐

    C#版C/S、CC局域网聊天、文件传输(源码与实验报告)

    1.用户之间的异步的即时文字通讯; 2.支持文件传输功能; 3.至少支持在局域网内实现基本文字通信功能 4.CS通信、无服务器下CC通信

    C/S编程实验报告

    实现基于Socket的C/S编程方法,着重体会使用Socket进行通信时,通信双方通信协议的制定方法。

    C# QQ源码 C/S结构

    4.1.3 3 C/S结构,全C++版,具有视频会议、白板、文件共享、即时通讯等功能。 3、C/S结构,全C++版,功能非常强大,具有视频会议、白板、文件共享、即时通讯等功能。 Gavcon视频会议系统带IM 4.1.4 4、C/S结构和B/...

    XEIM|XEIM C/S 版飞鸽传书,2010-8-30 更新

    因此,企业即时通讯软件具有以下特点:传输速度快、信息具有保密性、防止员工与公司外人员聊天,更多介绍:(http://www.freeeim.com/xeim/)XEIM|XEIM C/S 版飞鸽传书,2010-8-30 更新。 目前,多数企业都存在着一...

    c++ c/s通信

    基于c++的socket通信,它包含客户和服务器两端,服务器端实现客户端的请求,包括创建目录,创建文件,修改文件名,删除文件。(仅含代码)

    C/S仿QQ 即使通讯软件原代码和界面

    C/S仿QQ 即使通讯软件系统 包括所有的原代码和相框素材,实现即使通讯和文件传输等功能

    C# Socket实现C/S模式通信

    C# Socket实现C/S模式通信的一个Demo,有客户端和服务器端的交互,可以实现网络通讯,可以发送文字和文件,具体介绍和详细代码可以参考链接:https://www.dianyuan.com/eestar/article-1330.html

    提供TCP网络服务的C/S的通讯构架基础类(异步通信)

    1.创建Ibms.Net.TcpCSFramework命名空间和添加Session对象. ...文件版本修改为1.1,1.0版本仍然保留,更名为: /// TcpCSFramework_v1.0.cs /// 3.在TcpServer中修改自定义的hashtable为系统Hashtable类型 ///

    数据库系统原理与实现课堂作业(建立C/S结构的演示程序)

    数据库系统原理与实现课程作业,自己建立一个c/s小系统,服务器程序在接受到客户端的连接请求后启动对应的服务程序管理二进制文件中保存的个人通讯簿,能够根据客户端给出的条件从文件中找到指定的记录。

    socket服务器客户端(c/s)长链接集成

    这是本人快发的一款基于socket的服务器和客户端长链接的代码源,可以快速进行c/s模式通讯,有效提高程序员开发效率,对大文件发送进行简化

    局(广)域网多人聊天程序,支持文件传输-MiniChat

    该程序采用C/S三层架构,多线程Socket通信方式。Cient端采用TcpClient类连接服务器,使用NetworkStream传送数据。Server端采用TcpListener监听本地端口,并使用多线程为每个用户建立独立 Socket连接并与client通信。...

    python单线程文件传输的实例(C/S)

    客户端代码: #-*-encoding:utf-8-*- import socket import os import sys import math import time ... sys.stdout.write([%-50s] %s % ( '=' * int(math.floor(cur * 50 / total)), percent)) sys

    基于QT(C++)实现(界面)即时通讯软件【100010661】

    项目使用 c/s 架构,由服务器(server)和客户端(client)组成。 服务端进行数据库操作存储用户信息、聊天记录和传输文件副本等数据。同时进行客服注册、登入请求的处理与进行聊天信息和文件的转发工作。 客户端...

    基于局域网Java开发的通讯软件

    基于局域网Java开发的即时通讯软件,采用c/s架构,是本人的毕业作品,分为客户端跟服务端两个部分。群聊 ,私聊 ,点对点传输文件,但是还有许多要修改的地方。而进行点对点的传输文件后,该用户客户端无法使用,这...

    JAVA局域网通信文件传输工具-飞秋-内网通-飞鸽传书软件设计与实现-程序源代码-论文

    网络通讯在当今已经不算新鲜事物,但...本课题设计主要针对局域网通讯而开发设计的,采用的是C/S构架,类似飞鸽传书系统,来实现聊天、文件传输功能,并借助一些网络通讯组件,成功的实现了在局域网上的即时通讯。

    基于linux系统的即时通讯软件

    即时通讯软件运行在linux系统下,可实现一人或多人聊天,文件传输,修改个人信息、登录密码等功能。代码包括gtk界面,socket服务器,mysql数据库三个部分。

    局域网即时通讯软件JAVA编写

    本软件采用UDP协议,使用数据报发送文件和聊天信息。Port:5006用于文件传输的应答信息传送,Port:4999用语聊天信息传送。Port:5001用于文件数据流。...本软件是对等的,无C/S结构。默认对方IP是本地IP。

    局域网文件传输论文(正好适用于论文,是完整论文)

    文件传输系统主要功能是用户确定的主机名,IP地址以及工作组名字,最终以C/S模式通过TCP/IP协议实现点到点文件传输功能。 本系统既锻炼了我们的实际动手能力,使我们将大学四年所学的理论知识与实际开发相结合,又...

    学生通讯信息管理程序代码(C语言)

    /*指向文件的指针*/ int i; /*i是全局变量,可代替length ,输入的记录条数*/ struct ffriend {int num; /*序号*/ char name[20]; /*姓名*/ char sex; /*性别*/ char telephone[13]; /*电话*/ int year; ...

Global site tag (gtag.js) - Google Analytics