社区
网络及通讯开发
帖子详情
serversocket在阻塞式下接受大文件该怎么做?要求保正文件接收完整,
wangyelon
2003-07-27 01:00:17
如题,请各位指教啊,
若有代码或伪码示例更好,
谢谢
...全文
53
19
打赏
收藏
serversocket在阻塞式下接受大文件该怎么做?要求保正文件接收完整,
如题,请各位指教啊, 若有代码或伪码示例更好, 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zihan
2003-07-30
打赏
举报
回复
to:楼上
可能还是你搞错了大家的意思了,肯定先发文件的长度是最好的.不然你怎么知道文件是否已经发送完成,假如这个文件有100M,你不可能一次发完吧,只有一块一快的发,当然流长度就不是文件长度了
你先发文件长度,如SendText(FileLength)
然后在客户端收到文件长度过后就可以根据现有的大小确定是否已经发送完成了
Atomictry
2003-07-30
打赏
举报
回复
当时我也是遇到这种问题,我提问的时候也说先发文件长度,再发文件内容。但是他们说
不明白我的意思,我晕~~~
你可以用流来接收,这样就可以在接收端可以得到流的长度。当长度是文件长度时就存成
该文件格式。
wangyelon
2003-07-30
打赏
举报
回复
本人级别太低,一帖只有100分,所以结了此另开新贴,欢迎大家继续发言,
新帖地址:
http://expert.csdn.net/Expert/topic/2087/2087798.xml?temp=.0109064
wangyelon
2003-07-30
打赏
举报
回复
大家好,谢谢各位,发送接收的方法我是知道的,
NowCan的那个阻塞的代码我也研究过了,
我的迷惑在于我对于阻塞式SOCKET的运作不是很清楚,
也没找到这样的书籍,我昨天试着先写了一些代码,出了点问题,
如果客户端发出一次信息,又接着再发,但服务器总在不停接收,
我主要是不晓的有什么好办法分清每次发来的到底是什么,
duduwolf
2003-07-29
打赏
举报
回复
楼主看起来挺认真的,从留的通讯地址就能看出来,可惜是个GG不是MM,嗬嗬,开玩笑,其实像你这样的问题并不是一段代码能解决的,我建议你最好去仔细看看socket的通信,把全部弄懂了再找个代码看看,就能很明白了,不然现在得到了代码也看不懂,万一有一点改动就又有问题了,你先去看看《计算机网络编程》然后再找一个比较简单的用阻塞式进行通信的源代码看看。如果用得急得话,去nowcan的网站上看看,我记得那家伙有你要的代码
duduwolf
2003-07-29
打赏
举报
回复
楼主看起来挺认真的,从留的通讯地址就能看出来,可惜是个GG不是MM,嗬嗬,开玩笑,其实像你这样的问题并不是一段代码能解决的,我建议你最好去仔细看看socket的通信,把全部弄懂了再找个代码看看,就能很明白了,不然现在得到了代码也看不懂,万一有一点改动就又有问题了,你先去看看《计算机网络编程》然后再找一个比较简单的用阻塞式进行通信的源代码看看。如果用得急得话,去nowcan的网站上看看,我记得那家伙有你要的代码
smallflaybird
2003-07-29
打赏
举报
回复
我有的..不过我今天下午在培训所以没有在QQ上面发给你.是我昨天写的一个版本不是非常的完善.也是我的一个试验作品.
wangyelon
2003-07-29
打赏
举报
回复
目前我的问题还没有解决,欢迎大家继续给于帮助,
asimpleman
2003-07-28
打赏
举报
回复
gz
wangyelon
2003-07-28
打赏
举报
回复
大家的答案都不是我需要的,其实是这样的,
我写了线程
因为用阻塞式,只能使用 TWinSocketStream 来读写,
所以要发送文件信息,得到回复后再发送文件内容,
就肯定要来来回发送多次,
我去找了帮助文档没头绪,所以才来找大家指点迷津,
wangyelon
2003-07-28
打赏
举报
回复
to funcy333(funcy333 )
啊?真的吗?,
我的水平很勉强,因为我可怜的只能在网络公司做网站,
编写这些东西都是个人爱好,
老大你能给我完整的线程 代码则不胜感激,
将以300分做为感谢,也可面谈吧,我的油箱
yelom125@sina.com
QQ:20131027
手机号: 13055178128
funcy333
2003-07-28
打赏
举报
回复
正巧,我刚做完,关于用socket发送二进制文件的问题就是我发的。你的问题我已经解决了,你需要什么代码?是建立线程的代码还是发送接收的代码 ?
jishiping
2003-07-27
打赏
举报
回复
发送文件时,先发送文件的长度(一个整数表示),再发送文件内容。这样接收时,先读取
长度,然后再读取指定长度的字节数。
cloudxuxi
2003-07-27
打赏
举报
回复
用阻塞模式最好创建一个子线程,在子线程里用Socket发送和接收数据。
我不懂电脑
2003-07-27
打赏
举报
回复
看看bcb帮助吧,里面有一个例子。‘
asimpleman
2003-07-27
打赏
举报
回复
gz
铖邑
2003-07-27
打赏
举报
回复
为什么要来回传递信息?
你怕阻塞在读操作上,可以先去缓冲区字节数,再读,就不会阻塞了。
int len;
ioctlsocket(s, FIONREAD, &len, sizeof(int));
wangyelon
2003-07-27
打赏
举报
回复
我也明白需要发送文件信息,但是我使用的是阻塞式,
我不知道如何接收多次,并来回传递信息,
铖邑
2003-07-27
打赏
举报
回复
先给服务器发送文件信息:文件名、大小等
再将文件按某一长度,如1024字节,全部发送
当服务器收到期望的字节,就可以关闭文件了。
关闭由
ServerSocket
阻塞
的线程的一种方法
关闭由于
serverSocket
监听
阻塞
住的线程,对于未
阻塞
的线程简单的设置一个变量stop,每次轮询检测stop的值即可,但是这对于被
阻塞
的线程是行不通的。由于被
阻塞
住,根本无法检测stop变量的值。 方法 程序提供了closeClient()方法,在这个方法中,首先设置stop变量为true,然后与本
serverSocket
建立链接,建立之后立即关闭。这样在run方法中的serverSocke...
ServerSocket
和Socket建立通信(客户端发送消息服务器
接收
输出)
这些都是我个人的学习总结。请大家看到又不好的不要妄加评论。可以给我留言一起讨论学习的问题。我是
做
java开发的现在还是在学习阶段,很多的东西不懂得。。
ServerSocket
的作用:就是为了监听处理Socket的请求。 Socket的作用:就是发送请求 需求:建立一个最简单的客户端和服务器的通信 思路:1、建立一个服务器端:
ServerSocket
2、创建
阻塞
监听器 3、构建
ServerSocket
类的使用
接受
accept与超时Timeout public Socket accept()方法的作用就是侦听并
接受
此套接字的连接。此方法在连接传入之前一直
阻塞
。 setSoTimeout(timeout)方法的作用是设置超时时间,通过指定超时timeout值启用/禁用SO_TIMEOUT,以ms为单位。在将此选项设为非零的超时timeout值时,对此
ServerSocket
调用accept()方法将只
阻塞
timeout的时间长度。如果超过超时值,将引发java.net.SocketTimeoutException,
主动
式
关闭-线程,
ServerSocket
堵塞关闭的一个法子
在Java上,启动一个线程容易,让一个线程不断运行,也很容易,只要一个while循环,一直
做
死循环就行了。不过问题来了,那关闭线程怎么办? 先写个例子: public class TestThread extends Thread { @Override public void run() { while(true){ System.out.println(...
Java 技术篇 -
ServerSocket
接收
http的url请求中包含中文的处理方法,URLDecode与URLEncode,url解码与编码
通过解码方法: String url_new = java.net.URLDecoder.decode(url, "UTF-8"); 如果需要编码的话可以使用: String url_new = java.net.URLEncoder.encode(url, "UTF-8"); //
阻塞
式
连接,当
接收
请求前保持
阻塞
Socket socket_client = server.accept();
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章