×

java实现文件分享功能

java实现文件分享功能(java实现文件分享功能怎么用)

admin admin 发表于2023-03-29 09:52:08 浏览61 评论0

抢沙发发表评论

本文目录一览:

基于java的p2p实现文件共享和传输

在JAVA中,发送和接收多播信息的方法: 

发送多播信息需经历步骤 

确定发送的具体信息内容 

String msg = "Hello"; 

选用专门为多播指定的D类IP地址(224.0.0.1到239.255.255.255),创建一个多播组 

InetAddress group = InetAddress.getByName("228.5.6.7"); 

使用指定的端口(一般选1024以上的端口号)建立多播套接字 

MulticastSocket s = new MulticastSocket(6789); 

加入多播组 

s.joinGroup(group); 

创建一个数据报封装多播信息 

DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), 

group, 6789); 

发送 

s.send(hi); 

接收多播信息的步骤 

开辟接收缓冲区 

byte[] buf = new byte[1000]; 

创建接收数据报 

DatagramPacket recv = new DatagramPacket(buf, buf.length); 

接收 

s.receive(recv); 

注意:以上发送和接收程序在同一个文件中实现,若在不同文件中实现则应分别定义多播套接字并加入多播组。 

3.与已知IP和端口的端点通信 

在互联网上主要采用TCP和UDP来实现两点之间的通信。采用TCP可可靠传送信息,但花费时间较多;采用UDP可快速传递信息,但不能保证可靠传递。

JAVA实现TCP通信的方法 :

利用Socket(InetAddress addr, int port)和 Socket(String host, int port),创建客户端套接字,利用ServerSocket(int port)创建服务器端套接字,port端口就是服务器监听连接请求的端口,通过调用accept()返回一个最近创建的Socket对象,该Socket对象绑定了客户程序的IP地址或端口号。通过调用Socket的 getInputStream()方法获得输入流读传送来的信息,也可能通过调用Socket的 getOutputStream()方法获得输出流来发送消息。 -java实现文件分享功能

 

JAVA实现UDP通信的方法 :

使用DatagramPacket(byte [] buffer, int length, InetAddress addr, int port) 确定数据包数组、数组的长度、数据包的地址和端口信息。使用DatagramSocket()创建客户端套接字,而服务器端则采用DatagramSocket(int port),调用send(DatagramPacket dgp)和 receive(DatagramPacket dgp)来发送和接收数据包。本文设计的程序采用UDP。-java实现文件分享功能

P2P(Peer-to-Peer 端到端)模型是与C/S(客户/服务器)模型相对应。基于C/S的用户间通信需要由服务器中转,在C/S中的服务器故障将导致整个网络通信的瘫痪。。而基于P2P的用户间通信则是直接通信,去掉了服务器这一层,带来的显著优点是通信时没有单一的失败点,一个用户的故障不会影响整个P2P网络。本文提供了一种用JAVA实现P2P网络通信的方法。   -java实现文件分享功能

java如何访问局域网共享文件?

java访问共享文件夹,读取局域网中一台机器的共享目录中的文件,需要jcifs-1.1.11.jar的支持,使用SMB协议,以下是实现了远程读取文件的功能代码:

package junit;

import jcifs.smb.SmbFile;

/**   

 * java访问局域网共享目录

 *

 * @author administrator

 * @version 1.0 2015-7-6 

 */

public class SmbTest {

    public static void main(String[] args) throws Exception {

        //smb://xxx:xxx@192.168.2.188/testIndex/  

        //xxx:xxx是共享机器的用户名密码

        String url="smb://192.168.2.188/testIndex/";

        SmbFile file = new SmbFile(url);

        if(file.exists()){

            SmbFile[] files = file.listFiles();

            for(SmbFile f : files){

                System.out.println(f.getName());

            }

        }

    }

}

java怎么实现微信分享到朋友圈功能

申请应用 AppKey

申请方法:访问友推网站后台,登录后进入应用列表,添加需要集成友推组件的 App,如下图,添加成功后可获取应用的 AppKey。

如何把app分享到微信

2

申请社交平台appkey

集成前您需要为您的应用在各大社交网站的开放平台申请账号并通过审核,否则只能调用系统的分享菜单,无法跟踪分享的回调事件及统计平台

如何把app分享到微信

3

引用youtui库项目

将youtui-lib项目库和应用工程放在同一个目录下

在 Package Explorer 中右键点击工程的根目录,选择 Properties(属性),然后点击,在Android选项点击Add添加youtui-lib

如何把app分享到微信

4

注册需要分享的平台

1.配置各分享平台key,该配置文件为youtui_sdk.xml,配置完放入工程的assets文件夹。

2.如果需要分享到哪个平台就将该平台的Enable属性设置为true.

3.如果需要将某个平台排列到前面,只需要改变它在youtui_sdk.xml文件中的位置即可。

5

各平台需要注意的事项:

新浪微博:

新浪微博需要验证应用签名,请一定要在新浪开放平台管理中心应用信息 - 基本信息 - Android签名包名信息 配置该信息

每次包名变化或者使用的.keystore变化都会导致应用签名变化,请重新到新浪微博开放平台设置。

运行Demo时如果重新编译,因为使用的.keystore文件变化也会导致应用签名变化,导致Demo新浪微博分享无法正常工作,请运行Demo时使用Demo工程包中提供的debug.keystore替换C:\Users\Administrator.android中的debug.keystore文件-java实现文件分享功能

微信和朋友圈:

微信和朋友圈也需要验证应用签名,请在微信开放平台管理中心修改应用 - 开发信息配置。

QQ和QQ空间:

QQ和QQ空间使用的是腾讯开放平台api,请在腾讯开放平台申请账号和注册应用,请不要使用QQ互联(用于网站账号登录)的配置,虽然都是腾讯的,但是两个平台并不通用,除了需要在youtui_sdk.xml配置信息,还需要在manifest文件中的android:scheme中的tencent后的一串数字换成自己应用的appid。-java实现文件分享功能

?xml version="1.0" encoding="utf-8"?

最后一行配置说明:选用调用系统分享菜单功能

在AndroidManifest.xml 注册权限

在 AndroidManifest.xml 注册需要的Activity

微信和朋友圈回调设置

如果需要分享微信和朋友圈,必需建一个 应用包名+ .wxapi 的包,在该包下建 WXEntryActivity.java,将该类继承cn.bidaround.youtui.wxapi.WXEntryActivity即可(里面不用写代码)-java实现文件分享功能

public class WXEntryActivity extends cn.bidaround.youtui.wxapi.WXEntryActivity { }

如图:(将com.xingxinglangtuoche替换成你应用的package名,微信回调会使用到)

如何把app分享到微信

初始化友推

开发者请在自己的程序开始,最好是在MainActivity的onCreate方法调用YtTemplate.init(this)初始化友推sdk,这样友推sdk才能进行后续调用(否则分享等操作会出现空指针异常),例如:-java实现文件分享功能

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); YtTemplate.init(this);/初始化友推/ initView(); } 应用退出时:-java实现文件分享功能

在您项目的出口Activity的 onDestroy 方法的第一行插入下面的代码 YtTemplate.release(this); 此方法用于释放内存,统计用户使用情况,一旦调用了release,就必须重新调用init才能使用友推的功能,否则会出现空指针异常;-java实现文件分享功能

创建 ShareData 实例,调用该实例的set方法设置需要分享的数据: 创建ShareData实例,调用该实例的set方法设置自己需要分享的数据,关于该实例具体内容见下文,如果只是分享应用则只需要设置 setIsAppShare(true) 就可以分享应用在友推后台填写的信息和下载链接。-java实现文件分享功能

ShareData 包含的字段:

isAppShare text imagePath imageUrl description title target_url 判断是否为分享应用 待分享的文字,短信要小于70个字符,微博要小于140个字符,如果需要分享链接,最好将链接url放在最后 待分享的本地图片地址,分享图片的话需要在本地和网络图片中选一,如果都有则优先分享本地图片 待分享网络图片url,分享图片的话需要在本地和网络图片中选一,如果都有则优先分享本地图片 待分享内容的描述 待分享内容的标题 待分享内容的跳转链接-java实现文件分享功能

通过创建该类实例,调用实例的set方法设置这些参数,例如:

ShareData shareData = new ShareData(); shareData.isAppShare = false;//设置为true则分享的信息从友推后台填写的应用信息中读取,可动态更新,后面的值不用设置。 shareData.setDescription("友推积分组件"); shareData.setTitle("友推分享"); shareData.setText("通过友推积分组件,开发者几行代码就可以为应用添加分享送积分功能,并提供详尽的后台统计数据,除了本身具备的分享功能外,开发者也可将积分功能单独集成在已有分享组件的app上,");-java实现文件分享功能

shareData.setTarget_url("");

shareData.setImageUrl("");

shareData.setImagePath("");

各个平台分享数据的限制和注意事项:

因为各个平台的分享限制,请分享时尽量分享图片+链接,依靠链接来了解更多信息

1) 微信 朋友圈 微信分享为linkcard形式,超出的文字部分不会显示

2) 新浪微博 很低版本的新浪微博不支持发多类型微博,进行图文分享时只会分享图片,新浪微博分享消息最长为140字

3) QQ、QQ空间 QQ分享的消息最长40字,分享的标题最长30字,多余的部分将被忽略,description将被忽略 QQ空间分享的消息最长200字,分享的标题最长600字,多余的部分将被忽略,description将被忽略-java实现文件分享功能

4) 腾讯微博 只有image(imagePath或imageUrl)和text被分享,其他字段忽略,腾讯微博分享消息最长为140字

5) 人人网 只有image(imagePath或imageUrl)和text被分享,其他字段忽略

6) 短信 只有text被分享,其他字段忽略

7) 邮件 只有text被分享,其他字段忽略

如何把app分享到微信

调用友推分享推荐组件

为应用添加一个分享推荐按钮,如:

如何把app分享到微信

在分享按钮事件中调用youtui的组件即可,示例代码:

public void onClick(View v) { if(v.getId()==R.id.popup_bt)

{ /调用友推分享推荐组件,YouTuiViewType类的常量为分享样式参数,目前支持白色列表和黑色网格两种/ /创建分享的模板,第一个参数为activity,第二个参数为分享窗口样式,第三个参数为是否需要积分/-java实现文件分享功能

YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.BLACK_POPUP,false); //黑色网格样式不需要积分活动 /YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.WHITE_LIST,ture);/ //白色列表样式需要积分活动-java实现文件分享功能

ShareData shareData = new ShareData();

shareData.isAppShare = false;//设置为true则分享的信息从友推后台填写的应用信息中读取,可动态更新后面的值不用设置。

shareData.setDescription("友推积分组件");

shareData.setTitle("友推分享");

shareData.setText("通过友推积分组件,开发者几行代码就可以为应用添加分享送积分功能,并提供详尽的后台统计数据,除了本身具备的分享功能外,开发者也可将积分功能单独集成在已有分享组件的app上,快来试试吧 "); -java实现文件分享功能

shareData.setTarget_url("");

shareData.setImageUrl("");

shareData.setImagePath("");

blackTemp.setShareData(shareData);//设置默认的分享数据;shareData 设置参看4.6

//**如果要为某个平台设置不一样的分享信息。则单独设置*/ //blackTemp.addData(YtPlatform.PLATFORM_QQ, shareData); //调出分享窗口 blackTemp.show();-java实现文件分享功能

//如果需要自定义分享事件,可以创建监听事件,然后在回调中处理 YtShareListener listener1 = new YtShareListener() {

@Override

public void onSuccess(ErrorInfo arg0)

{

}

@Override public void onPreShare()

{

}

@Override

public void onError(ErrorInfo arg0)

{

}

@Override

public void onCancel() {

}

};//给新浪微博添加分享监听 blackTemp.addListener(YtPlatform.PLATFORM_SINAWEIBO, listener1);

//给QQ添加分享监听 //

blackTemp.addListener(YtPlatform.PLATFORM_QQ, listener2); }