java客户端

 package client;

 import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket; /**
* 文件发送客户端主程序
* @author admin_Hzw
*
*/
public class client { /**
* 程序main方法
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
int length = ;
double sumL = ;
byte[] sendBytes = null;
Socket socket = null;
DataOutputStream dos = null;
FileInputStream fis = null;
boolean bool = false;
try {
File file = new File("F:\\img\\6.jpg"); //要传输的文件路径
long l = file.length();
socket = new Socket();
socket.connect(new InetSocketAddress("127.0.0.1", ));
dos = new DataOutputStream(socket.getOutputStream());
fis = new FileInputStream(file);
sendBytes = new byte[];
while ((length = fis.read(sendBytes, , sendBytes.length)) > ) {
sumL += length;
System.out.println("已传输:"+((sumL/l)*)+"%");
dos.write(sendBytes, , length);
dos.flush();
}
//虽然数据类型不同,但JAVA会自动转换成相同数据类型后在做比较
if(sumL==l){
bool = true;
}
}catch (Exception e) {
System.out.println("客户端文件传输异常");
bool = false;
e.printStackTrace();
} finally{
if (dos != null)
dos.close();
if (fis != null)
fis.close();
if (socket != null)
socket.close();
}
System.out.println(bool?"成功":"失败");
}
}

C++客户端

 #include <Winsock2.h>
#include <cstdio>
#include<iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib")
void main()
{
WSADATA wsaData;
SOCKET sockClient;//客户端Socket
SOCKADDR_IN addrServer;//服务端地址
WSAStartup(MAKEWORD(, ), &wsaData); //一个socket的初始化函数
sockClient = socket(AF_INET, SOCK_STREAM, );//新建客户端socket,AF_INET使用IPv4进行通讯
//定义要连接的服务端地址
addrServer.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");//目标IP(127.0.0.1是回送地址)
addrServer.sin_family = AF_INET;
addrServer.sin_port = htons();//连接端口6000
//连接到服务端
connect(sockClient, (SOCKADDR*)&addrServer, sizeof(SOCKADDR));
//发送数据
char message[] = "HelloSocket!";
char messagerecv[] = "";
send(sockClient, message, strlen(message) + , );
recv(sockClient, messagerecv, , );
printf("%s\n", messagerecv); //发送文件
string file_name = "F:\\img\\6.jpg";
FILE *fp = fopen(file_name.c_str(), "rb");
int num = ;
while (!feof(fp))
{
num = fread(message, , , fp);
send(sockClient, message, num, );
} /*
//文件写操作
string file_name = "F:\\img\\7.jpg";
FILE *fp = fopen(file_name.c_str(), "wb");
int num = 0;
while (1)
{
num = recv(sockClient, message, 1000, 0);
if (num == 0)
break;
fwrite(message, 1, num, fp);
}
*/ //关闭socket
fclose(fp);
closesocket(sockClient);
WSACleanup();
}

C++服务端

 #include <Winsock2.h>
#include <cstdio>
#include<iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib")
void main()
{
WSADATA wsaData;
SOCKET sockServer;
SOCKADDR_IN addrServer;
SOCKET sockClient;
SOCKADDR_IN addrClient;
WSAStartup(MAKEWORD(, ), &wsaData);
sockServer = socket(AF_INET, SOCK_STREAM, );
addrServer.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//INADDR_ANY表示任何IP
addrServer.sin_family = AF_INET;
addrServer.sin_port = htons();//绑定端口6000
bind(sockServer, (SOCKADDR*)&addrServer, sizeof(SOCKADDR)); //Listen监听端
listen(sockServer, );//5为等待连接数目
printf("服务器已启动:\n监听中...\n");
int len = sizeof(SOCKADDR);
char message[];//发送至客户端的字符串
char recvBuf[];//接受客户端返回的字符串 //会阻塞进程,直到有客户端连接上来为止
sockClient = accept(sockServer, (SOCKADDR*)&addrClient, &len);
//接收并打印客户端数据
//recv(sockClient, recvBuf, 1000, 0);
sprintf(message, "%s", "gua");
printf("%s\n", message);
//send(sockClient, message, 1000, 0);
printf("%s\n", recvBuf); /*
//发送文件
string file_name = "F:\\img\\6.jpg";
FILE *fp = fopen(file_name.c_str(), "rb");
int num = 0;
while (!feof(fp))
{
num = fread(sendBuf, 1, 1000, fp);
send(sockClient, sendBuf, num, 0);
}
*/ //文件写操作
string file_name = "F:\\img\\7.jpg";
FILE *fp = fopen(file_name.c_str(), "wb");
int num = ;
while ()
{
num = recv(sockClient, message, , );
if (num == )
break;
fwrite(message, , num, fp);
} fclose(fp);
//关闭socket
closesocket(sockClient);
WSACleanup();
}

C++,java信息,文件传输的更多相关文章

  1. Java简单文件传输 socket简单文件传输示例

    服务器端代码: import java.io.*; import java.net.*; /** * Created with IntelliJ IDEA. * User: HYY * Date: 1 ...

  2. java实现文件传输

    在windows下装了个linux虚拟机,两者之间传输文件挺麻烦的.写了个简单的文件传输程序,来方便自己数据传送. server 端: import java.io.BufferedReader;im ...

  3. Java Tcp文件传输---转载

    /** 客户端 1.服务端点 2.读取客户端已有的文件数据 3.通过socket输出流发给服务端 4.读取服务端反馈信息 5.关闭 **/ import java.io.*; import java. ...

  4. java 接口 文件传输

    调用接收端 @ApiOperation(value = "文件请求展示方法") @RequestMapping(value = "/showFile", met ...

  5. java对于文件传输时---编码格式的一些设置方法

    - ----转 读文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够 ...

  6. 循序渐进Java Socket网络编程(多客户端、信息共享、文件传输)

    目录[-] 一.TCP/IP协议 二.TCP与UDP 三.Socket是什么 四.Java中的Socket 五.基本的Client/Server程序 六.多客户端连接服务器 七.信息共享 八.文件传输 ...

  7. 循序渐进Socket网络编程(多客户端、信息共享、文件传输)

    循序渐进Socket网络编程(多客户端.信息共享.文件传输) 前言:在最近一个即将结束的项目中使用到了Socket编程,用于调用另一系统进行处理并返回数据.故把Socket的基础知识总结梳理一遍. 1 ...

  8. java实现两台电脑间TCP协议文件传输

    记录下之前所做的客户端向服务端发送文件的小项目,总结下学习到的一些方法与思路. 注:本文参考自<黑马程序员>视频. 首先明确需求,在同一局域网下的机器人A想给喜欢了很久的机器人B发送情书, ...

  9. Java 简单TCP文件传输

    服务端 package TCP; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputSt ...

随机推荐

  1. echarts + timeline 显示多个options

    var option = { //timeline基本配置都写在baseoption 中 baseOption: { timeline: { //loop: false, axisType: 'cat ...

  2. salt 执行shell 脚本 修改名字

    #!/bin/bash #命令 匹配主机 执行模块 脚本路径,必须放在salt目录下 源主机名 修改的主机名 #salt tt_LD_LM_LC_1 cmd.script salt://init/re ...

  3. TFS: 解决The build agent error - the session for this agent already exists

    来源:http://ericphan.net/blog/2016/6/10/solving-the-tfs-build-agent-error-the-session-for-this-agent-a ...

  4. CND网站加速

    CDN是什么 1-CDN俗称网站加速2-公司一般是购买其他cdn服务商提供的服务3-CDN一般是用来缓存网站的静态资源文件的(css,js,图片,html,htm),浏览器获取某个静态资源是按照就近原 ...

  5. One point compactification

    Theorem (One point compactification) Any locally compact space \(X\) can be embedded in another comp ...

  6. FastJson 支持配置的PropertyNamingStrategy四种策略

    摘要: FastJson默认使用CamelCase,在1.2.15版本之后,FastJson支持配置PropertyNamingStrategy,支持四种策略: CamelCase.PascalCas ...

  7. jquery的div局部刷新

    jquery的div局部刷新 //div的局部刷新 $(".dl").load(location.href+" .dl"); 全页面的刷新方法 window.l ...

  8. BZOJ2553 [BeiJing2011]禁忌 AC自动机 矩阵

    原文链接http://www.cnblogs.com/zhouzhendong/p/8196279.html 题目传送门 - BZOJ2553 题意概括 引用一下lych大佬的: 在字母只有前alph ...

  9. namenode做了ha后kylin出现错误No registered coprocessor service found for name CubeVisitService in region

    错误如下: Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.excep ...

  10. 在Idea中添加自定义补全代码设置(Main方法为例)

    一.打开File->setting->Editor->Live Templates 二.注意右边有“+”.“-”号,点击+号选择第二个Template Group...,并输入新组名 ...