标题:[求助]还是Sock,请给个思路。
只看楼主
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
结帖率:33.33%
 问题点数:0 回复次数:6 
[求助]还是Sock,请给个思路。
我想实现这样的功能:(有点类似"上传")

1、服务器端监听端口(1234)
2、客户端与服务端建立连接,客户端发送消息(密文)给服务端
3、服务端收到消息后,回复给客户端(通过验证)
4、客户端开始传送文件给服务端。
5、服务端收到文件。

我现在已经实现了1-3步,就在第4步卡壳了。

原来设计是由客户端发送消息给服务端,服务端通过验证后,发送文件给客户端...(被动模式)
但是由于服务端需要设置端口映射,很不方便,所以放弃了。
现在改为(主动模式),由服务端发送消息给客户端,客户端验证后,服务端开始传送....

请问下:第4步改怎么弄?
接着刚才的通道,发送,接收?程序要命不行,就在sock.Resive(bytes,bytes.length,0)。停住了,也不知道为什么,调试看对方已经发送过来了。
还是重新开启新线程(新端口进行监听),接收(新端口的发送)?
搜索更多相关主题的帖子: 服务端 Sock 客户端 服务器 思路 
2007-02-05 21:29
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
我对这个Sock还是有些不太明白
到底是个什么模式?(sock.Send和sock.Receive)是一对一的关系(A-send->B,然后B-receive-A,继续 B-send-A,A-receive-B,然后直接(A-send-B,B-Listen)

2007-02-05 21:33
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 

由于传递消息和传递文件我用了不同的方式:
消息发送我用Sock.Send(encoding.ascii.getbytes(textbox1.text))
接收我用Sock.receive(bytes,bytes.length,0)

传送文件我用Memorystream ms;
socketForClinet.Send(ms.GetBuffer());

接收文件我用networkstream
netStream = myclient.GetStream();


2007-02-05 21:44
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
最主要的问题是:发送验证消息和收到返回消息一次即可。而传文件却是不断的传送(多个文件)。
怎么个传法?

2007-02-05 21:48
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
说了那么多我都晕了,其实问题就是:如果直接传送文件是没有问题的,可以实现!
问题是:进行了验证(发送接收后),就不能传送文件了。

2007-02-05 22:04
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
另外再问问:当服务端收到客户端传过来的文件流,能同时再传给其他的客户端么?
我的意思是不保存文件,直接传送。
A--->B B--->C

2007-02-05 22:07
liuminghui
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:2882
专家分:0
注 册:2007-1-26
得分:0 
[讨论]socket
以下是引用jockey在2007-2-5 21:44:05的发言:

由于传递消息和传递文件我用了不同的方式:
消息发送我用Sock.Send(encoding.ascii.getbytes(textbox1.text))
接收我用Sock.receive(bytes,bytes.length,0)

传送文件我用Memorystream ms;
socketForClinet.Send(ms.GetBuffer());

接收文件我用networkstream
netStream = myclient.GetStream();

socket问题我也经常遇到过,你能否发送消息,传送文件,接受文件时都用一样的方法呢
初学时要简单点才好研究的

海鸽 is My Lover!!
2007-02-06 09:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-119796-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018810 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved