| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1593 人关注过本帖
标题:[求助]异步通信数据读写入文件问题
只看楼主 加入收藏
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
收藏
 问题点数:0 回复次数:21 
[求助]异步通信数据读写入文件问题
异步通信程序,采用 BeginAccept,EndAccept。。。。。BeginReceive以及EndReceive。
现在为了测试程序的强壮性,在无间隔的while循环中进行数据的发送并将之写入文件。
public void AddintoMyfile(string ss)
{
ss 是收到的字符串
string path = @"D:\MyTestListener.txt";
// This text is added only once to the file.
if (!File.Exists(path))
{
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine(ss);
//sw.WriteLine("And");
//sw.WriteLine("Welcome");
}
}
// This text is always added, making the file longer over time
// if it is not deleted.
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(ss);

}
}

结果比如发送ss=textbox
文件中就会出现 他的重复版本
textboxtextbox。。。textbox
中间的个数具体不定。

请问有没有解决的方法。


搜索更多相关主题的帖子: 异步 通信 数据 文件 
2006-08-31 16:08
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
收藏
得分:0 
public void OnReceiveData(IAsyncResult ar)
{
//Socket was the passed in object
//Every time instantialize a new socket...
ReceiveDone.Set();
Sock = (Socket)ar.AsyncState;
//Check if we got any data
//If there are words....

try
{
//Timer_Refresh();

int nBytesRec = Sock.EndReceive(ar);
ReceiveDone.Set();
if (nBytesRec > 0)
{
string ss = Encoding.ASCII.GetString(Receive_Buffer, 0, nBytesRec);
listBox_Receive.Items.Add(ss);
AddintoMyfile(ss);
Sock.BeginReceive(Receive_Buffer, 0, Receive_Buffer.Length,
SocketFlags.None,
new AsyncCallback(OnReceiveData),
Sock);
ReceiveDone.WaitOne();
}
}
catch (Exception ex)
{
listBox_Receive.Items.Add(ex.Message + "Un usual error druing Recieve!");
}


}


2006-08-31 16:09
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 

到處show一下ss

你覺得是哪裡出問題了?


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-31 16:21
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
收藏
得分:0 
好像是接收的时候,如果上一个的还没有处理完,下一个数据又来了,就堆在一起,然后等我这个处理完,再读发过来的数据的时候,就一块读进来了


2006-08-31 16:29
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 

只發一次ss呢


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-31 16:37
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
收藏
得分:0 
正常收发都可以实现,写进文件也是正确的。
但是因为实际工作中需要 ms级的间隔来接收报文,所以就用的while循环。。
然后就,,,


2006-08-31 16:48
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 

我倒沒試過while來發數據
能把你的代碼全帖過來不
不想寫

我試下


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-31 16:53
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
收藏
得分:0 
我现在没有用while了,现在用的是timer 。。。。
汗 。。。。

间隔为50ms

还是偶尔出错。


2006-08-31 16:58
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 

用Timer好像不好吧.如果要发送的数据过长,还是会出错的,如果太短又会浪费时间.


一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-31 17:03
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
收藏
得分:0 
那个,我这里往外发邮件好像一直死着,打网页倒是能打开,就是有点慢。。。还在发,已经好几分钟了。。。。汗。。。

恩,那个要求大概就是ms级的数据发送了。。。
所以就用timer了,难道用while,那样子文件更恐怖。

2006-08-31 17:18
快速回复:[求助]异步通信数据读写入文件问题
数据加载中...
 
   



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

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