上传或者下载文件客户端:
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();
}
}
}
分享到:
相关推荐
1.用户之间的异步的即时文字通讯; 2.支持文件传输功能; 3.至少支持在局域网内实现基本文字通信功能 4.CS通信、无服务器下CC通信
实现基于Socket的C/S编程方法,着重体会使用Socket进行通信时,通信双方通信协议的制定方法。
4.1.3 3 C/S结构,全C++版,具有视频会议、白板、文件共享、即时通讯等功能。 3、C/S结构,全C++版,功能非常强大,具有视频会议、白板、文件共享、即时通讯等功能。 Gavcon视频会议系统带IM 4.1.4 4、C/S结构和B/...
因此,企业即时通讯软件具有以下特点:传输速度快、信息具有保密性、防止员工与公司外人员聊天,更多介绍:(http://www.freeeim.com/xeim/)XEIM|XEIM C/S 版飞鸽传书,2010-8-30 更新。 目前,多数企业都存在着一...
基于c++的socket通信,它包含客户和服务器两端,服务器端实现客户端的请求,包括创建目录,创建文件,修改文件名,删除文件。(仅含代码)
C/S仿QQ 即使通讯软件系统 包括所有的原代码和相框素材,实现即使通讯和文件传输等功能
C# Socket实现C/S模式通信的一个Demo,有客户端和服务器端的交互,可以实现网络通讯,可以发送文字和文件,具体介绍和详细代码可以参考链接:https://www.dianyuan.com/eestar/article-1330.html
1.创建Ibms.Net.TcpCSFramework命名空间和添加Session对象. ...文件版本修改为1.1,1.0版本仍然保留,更名为: /// TcpCSFramework_v1.0.cs /// 3.在TcpServer中修改自定义的hashtable为系统Hashtable类型 ///
数据库系统原理与实现课程作业,自己建立一个c/s小系统,服务器程序在接受到客户端的连接请求后启动对应的服务程序管理二进制文件中保存的个人通讯簿,能够根据客户端给出的条件从文件中找到指定的记录。
这是本人快发的一款基于socket的服务器和客户端长链接的代码源,可以快速进行c/s模式通讯,有效提高程序员开发效率,对大文件发送进行简化
该程序采用C/S三层架构,多线程Socket通信方式。Cient端采用TcpClient类连接服务器,使用NetworkStream传送数据。Server端采用TcpListener监听本地端口,并使用多线程为每个用户建立独立 Socket连接并与client通信。...
客户端代码: #-*-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
项目使用 c/s 架构,由服务器(server)和客户端(client)组成。 服务端进行数据库操作存储用户信息、聊天记录和传输文件副本等数据。同时进行客服注册、登入请求的处理与进行聊天信息和文件的转发工作。 客户端...
基于局域网Java开发的即时通讯软件,采用c/s架构,是本人的毕业作品,分为客户端跟服务端两个部分。群聊 ,私聊 ,点对点传输文件,但是还有许多要修改的地方。而进行点对点的传输文件后,该用户客户端无法使用,这...
网络通讯在当今已经不算新鲜事物,但...本课题设计主要针对局域网通讯而开发设计的,采用的是C/S构架,类似飞鸽传书系统,来实现聊天、文件传输功能,并借助一些网络通讯组件,成功的实现了在局域网上的即时通讯。
即时通讯软件运行在linux系统下,可实现一人或多人聊天,文件传输,修改个人信息、登录密码等功能。代码包括gtk界面,socket服务器,mysql数据库三个部分。
本软件采用UDP协议,使用数据报发送文件和聊天信息。Port:5006用于文件传输的应答信息传送,Port:4999用语聊天信息传送。Port:5001用于文件数据流。...本软件是对等的,无C/S结构。默认对方IP是本地IP。
文件传输系统主要功能是用户确定的主机名,IP地址以及工作组名字,最终以C/S模式通过TCP/IP协议实现点到点文件传输功能。 本系统既锻炼了我们的实际动手能力,使我们将大学四年所学的理论知识与实际开发相结合,又...
/*指向文件的指针*/ int i; /*i是全局变量,可代替length ,输入的记录条数*/ struct ffriend {int num; /*序号*/ char name[20]; /*姓名*/ char sex; /*性别*/ char telephone[13]; /*电话*/ int year; ...