[Socket]Socket文件传输】的更多相关文章

由于本篇博文的项目都很简单,所以本次开个特例,本次解析两个项目,但是都很简单的 项目一:用socket实现文件传输 本项目很简单,作为小项目的预热的,前面刚学完socket,这里马上又利用socket进行项目开发,难不倒各位 项目要求: 1.用socket完成文件上传功能 2.文件位置可以设置 3.传输协议可以为get,和post 4.路径存放位置可以设置 5.服务端实现多用户连接,客户端随意 要求就这么简单,好久没有这么简单的操作了吧? 不多说,直接来. 程序结构: settings.py:…
服务器端代码: import java.io.*; import java.net.*; /** * Created with IntelliJ IDEA. * User: HYY * Date: 13-10-30 * Time: 下午2:15 * To change this template use File | Settings | File Templates. */ public class Server { public static void main(String[] args)…
server:===========================================import socketimport structimport jsonsk = socket.socket()sk.bind(('127.0.0.1',8989))sk.listen() conn,addr = sk.accept() resv_size = conn.recv(4) #会儿收到报头的大小,经过struct转码的字节码dic_size = struct.unpack('i',r…
1.文件传输的要点: 采用iterator(迭代器对象)迭代读取,提高读取以及存取效率: 通过for line in file_handles逐行conn.send(): 2.socket粘包问题: [出现原因]:A.TCP协议为了提高传输效率,发送方往往需要收集定量的数据才会封装给底层并发送,若出现连续send(data),TCP会把该数据进行整合(直到装满数据缓冲区),这样就造成了粘包数据:B.接收方接收方的粘包是由于接收用户相关进程不及时接收数据,从而导致粘包问题,这是因为接收方先把接收到…
前面介绍了怎样通过Socket在客户端与服务端之间传输文本,当然Socket也支持在客户端与服务端之间传输文件,因为文件本身就是通过I/O流实现读写操作的,所以在套接字的输入输出流中传输文件真是再合适不过了.只是套接字属于长连接,倘若Socket一直不关闭,连接将总是处于就绪状态,也就无法判断文件数据是否已经传输完成.为了检验文件传输的结束时刻,可以考虑实时下列的两种技术方案之一:1.客户端每次连上Socket之后,只发送一个文件的数据,且发送完毕的同时立即关闭套接字,从而告知服务端已经成功发送…
我越是逃离,却越是靠近你. 我越是背过脸,却越是看见你. 我从你开始, 我在你结束. 需求:实现局域网下socket传输文件. 客户端步骤: 1.建立与服务器的连接 2.创建client输出流 3.创建输入流,绑定本地文件 4.读取文件后输出给服务器 服务器端步骤: 1.启动服务器 2.创建accept输入流 3.创建输出流绑定本地文件 4.读取客户端信息写入本地文件 1.字节流传输文件. public class Client { public static void main(String[…
客户端:读取文件(FileInputStream),发送文件(OutputStream) 服务器端:接收文件(InputStream),写文件(FileOutputStream) 客户端代码: package socketCopyFile; import java.net.*; import java.io.*; public class SocketCopyFileC { public static void main(String[] args) { try { Socket s = new…
server #include <stdio.h> #include <iostream> #include <cstring> #include <fstream> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") using namespace std; SOCKET m_Client; void SendFile(); int main(int argc,…
最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解.在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度.废话少说,先来看服务器端的程序. 1.服务器端 package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOutputStream;…
http://www.blogjava.net/sterning/archive/2007/10/13/152508.html 最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解.在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度.废话少说,先来看服务器端的程序. 1.服务器端 package sterning;import java.io.BufferedInputStream;imp…
基于TCP流协议的socket网络文件传输Demo: 实现:C语言功能:文件传输(可以传任何格式的文件) /*************************************************************************        > File Name: Server.c        > Author: SongLee        > E-mail: lisong.shine@qq.com         > Created Time:…
今天在windows平台下,通过socket实现了简单的文件传输.通过实现这一功能,了解基本的windows网络编程和相关函数的使用方法. 在windows平台上进行网络编程,首先都需要调用函数WSAStartup()进行链接库的初始化.如果没有使用该函数进行初始化,则后面会出现10093的错误(可以通过GetLastError()获得错误码). 进行初始化后,客户端和服务器进行不同的工作.但是不管是服务器还是客户端,都需要用到两个最基本的结构体,分别是SOCKET和sockaddr_in.其中…
今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中,如果我们使用TCP传输,会造成传输速度较慢的情况,所以我们在进行文件传输的过程中,最好要使用UDP传输. 在其中,我们需要写两个程序,一个客户端,一个服务端,在一个终端中,先运行服务端,在运行客户端,在服务端和客户端都输入IP地址和端口号,注意服务端和客户端的端口号要相同,然后选择功能,在linux…
目录[-] 一.TCP/IP协议 二.TCP与UDP 三.Socket是什么 四.Java中的Socket 五.基本的Client/Server程序 六.多客户端连接服务器 七.信息共享 八.文件传输 推荐阅读: 前言:在最近一个即将结束的项目中使用到了Socket编程,用于调用另一系统进行处理并返回数据.故把Socket的基础知识总结梳理一遍. 一.TCP/IP协议 既然是网络编程,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据…
上一篇文章五.Socket之UDP异步传输文件-实现传输中取消传送中,还遗留了一个传输文件最大的问题,就是传输过程中丢包,这样在文件传输过程中就会卡住了,这篇文章就来解决文件传输中的丢包问题,实现稳定的文件传输. 检测丢包是一个很麻烦的问题,解决的方法可能也有不少,我采用的是在接受文件端来检测,当开始接收文件,收到一个数据包后,如果等待超过了一定时间后都没有收到数据包,就给发送方发送一个新的请求,要求继续发送文件,直到文件全部接收完成.具体的做法就是: 1.  在ReceiveFileManag…
本文接着上一篇文章二.Socket之UDP异步传输文件,在上一篇文章的基础上实现多文件的传输和文件传输完成后进行完整性校验. 要实现多文件的传输,必须要对文(2)中发送文件的数据格式进行改进,必须加入每个发送数据属于哪个文件的标识,这样在文件接收的时候我们才能正确的处理这些数据.在具体的实现中,我是用文件的MD5值作为不同文件的数据标识的,这样当我们收到数据时,先根据MD5值判断数据属于哪一个文件,然后进行相应的处理. 要实现多文件的传输,在文件发送类(UdpSendFile)和文件接收类(Ud…
项目须要是通过WIFI建立手机和PC的通信,然后自己定义一个简单的协议对要传输的文件进行校验,传输的文件是2张3M的图片,要求考虑网络中断情况处理. 我这里採用的是非堵塞socket来实现的,之前查过非常多资料,认为这样的比較方便,其有用传统的那种socket也是能够实现的,至于堵塞问题,能够开两个线程.这样保证读取不是同一个线程,也就能够解决. 程序大致是这种流程,手机端发送一个"filename"字符串给PC,PC校验字符串后返回文件名称.然后手机端再把接收到的文件名称发送给PC端…
循序渐进Socket网络编程(多客户端.信息共享.文件传输) 前言:在最近一个即将结束的项目中使用到了Socket编程,用于调用另一系统进行处理并返回数据.故把Socket的基础知识总结梳理一遍. 1.TCP/IP协议 既然是网络编程,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据传输.这里就要使用到TCP/IP协议. TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成.IP层负责网络主机的定位,数据传输的…
http://blog.csdn.net/njchenyi/article/details/9072845 java socket 多线程网络传输多个文件 2013-06-10 21:26 3596人阅读 评论(1) 收藏 举报  分类: JAVA(158)  由于需要研究了下用 java socket 传输文件,由于需要传输多个文件,因此,采用了多线程设计.客户端每个线程创建一个 socket 连接,每个 socket 连接负责传输一个文件,服务端的ServerSocket每次 accept…
这是用scala实现的一个简单的文件传输程序. 服务端 package jpush import java.io.{DataInputStream, File, FileOutputStream} import java.net.ServerSocket import scala.collection.JavaConversions._ /** * Created by dingb on 2016/6/3. */ object Server extends App { def port = 88…
服务端 1.控件:TServerSocket 2.OnClientRead事件处理 procedure TMainForm.ssClientRead(Sender: TObject; Socket: TCustomWinSocket);varmsgr,theFileName:ansistring;bufRecv:Pointer;acc,iLength:Integer;begin acc:=0; //接收 0 1-不接受//接收到的数据的长度iLength:=Socket.ReceiveLengt…
前言 本人从事编程开发十余年,因为工作关系,很早就接触socket通讯编程.常言道:人在压力下,才可能出非凡的成果.我从事的几个项目都涉及到通讯,为我研究通讯提供了平台,也带来了动力.处理socket通讯对初学者而言,具有很大的挑战性.我有个梦想:能不能开发一套系统,能很好的实现性能和易用性的统一.高性能socket采用iocp(完成端口)是唯一选择.iocp像一匹烈马,虽然性能优良,但不宜驯服.本套系统为这匹烈马套上了枷锁,让他变得温顺:但是,当你需要他时,又能迸发出强劲的动力.本文就介绍该系…
好像好久都没更博文了,没办法,最近各种倒霉事情,搞到最近真的没什么心情,希望之后能够转运吧. 言归正传,这次我要做的是基于序列化技术的socket文件传输来无聊练一下手. 一.socket文件传输 之前我所做的服务器和客户端的tcp/udp通信都是以字符串流来进行单工的,双工的传输,其实关于文件传输的原理也差不多,我的主要方法是通过文件迭代器遍历文件流,并将其读取转化为字符串流,然后将字符串流从服务器端发送,然后客户端在缓冲区中接收数据流,然后并把它写入文件当中,从而实现文件的传输,在下面程序当…
简单版 server(服务端) import socket import subprocess import struct import json import os share_dir = r'E:\server\share' # 需要传输的文件所在的文件夹 phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) phone.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) #…
socket通信 1.简单的套接字通信 import socket phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) phone.bind(('127.0.0.1',8080)) phone.listen(5) print('starting...') conn,client_addr = phone.accept() data = conn.recv(1024) conn.send(data.upper()) conn.close…
最近把测试丢过来的种种BUG解决后,终于有时间去研究研究Socket通信,再加上以前做的WiFi连接和热点开启,于是有了现在的这篇博文:创建热点发送文件,让另一台手机连接热点接收文件. 效果图: 两台设备是如何传输文件的: 发送端->创建WiFi热点 接收端->连接热点 发送端->发送文件列表 接收端->收到后展示文件列表,选择要接收的文件发送给发送端 发送端->发送所选文件 接收端->开始接收… 发送端->创建WiFi热点: 由于Android没有直接开启热点的…
PC服务器端代码: /* * PC与<a href="http://lib.csdn.net/base/android" class='replace_word' title="Android知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Android</a>客户端实现文件的传送 * PC服务器端 */ package com.<a href="ht…
分类: WINDOWS 最近接触到利用socket进行大文件传输的技术,有些心得,与大家分享.首先看看这个过程是怎么进行的(如下图):      所以,我们需要三个socket在窗体加载的时候初始化: 1. 等到收货请求的socket(即等待对方向自己发出发送文件的请求:monitorSocket,端口:monitorPort) 2. 接收收货方响应的socket(即对方是否愿意接收大文件的回应:responseSocket:端口:responsePort) 3. 收货方收货的socket(即接…
Socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络服务模块 SocketServer…
很多朋友在使用socket编程时不可避免的都做过文件传输,而视频电影等需要一个字节一个字节的传输:但是客户端一般都通过-1进行终止,服务也一样:但是存在的问题是客户端永远不会把-1传递给服务端:因此经常会遇到服务端卡死报错:所以在传输时先把文件接收标示传递给服务端,比如文件长度,或者终止字符等 Server: public class Server { public static void main(String[] args) throws Exception { ServerSocket s…