| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2968 人关注过本帖
标题:异步tcp通讯程序中读写文件的问题--第一次发帖请多关照
取消只看楼主 加入收藏
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
收藏
得分:0 
这个,我想问一下:
你是在异步通讯的时候在onreceivedata里面调用这个函数吗?
我在单线程情况下调用的时候是可以运行的,但是现在在异步通讯的server接受到数据的时候就立刻调用它,然后用根据你那个改写以后的
private unsafe void AddIntoFile(string ss)
{
string strT = ss;
byte[] buf;

System.Text.ASCIIEncoding ae = new ASCIIEncoding();

int l;
int j;


buf = ae.GetBytes(strT);

l = buf.Length;

stlc.AddToHead(ref buf[0], l, 0);


strT = string.Format("Add telegram success, total {0}", stlc.Size);
MessageBox.Show(strT);

}
private unsafe void btnReadData_Click(object sender, EventArgs e)
{
byte[] buf = new byte[4086];
//int telid;
int l;
//string strV;
//string strV1;
//IntPtr p = new IntPtr((void *)&data);
fixed (byte* p = buf)
{
try
{
if (stlc.Size > 0)
{
l = stlc.GetFromTail(ref p[0], 0);
stlc.DelFromTail(1);
MessageBox.Show(Encoding.ASCII.GetString(buf, 0, l));
}
else
{
MessageBox.Show("no data");
}
}
catch (Exception et)
{
MessageBox.Show(et.Message);
}
}


}

这样子只能保证第一个字母是对的,后面就是乱码了。
读出来比如 发送 textbox
读出来就是 t???

是不是 fixed语句有问题?
stlc.AddToHead(ref buf[0], l, 0);
只绑定了第一个字节?
但是我记得数组好像是第一个字节的地址就是数组的开始地址啊

现在只能运行保证第一个字母氏对的 后面都是乱的


2006-08-11 17:49
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
收藏
得分:0 
谢了,我也回家了。。。

2006-08-11 18:15
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
收藏
得分:0 
chenjin145。。。。
那个异步调用的话你可以实现文件的写入和读取吗?
我后来回去发现还是出现问题,没有办法解决。
我又重新发了一个帖子。

2006-08-14 09:15
快速回复:异步tcp通讯程序中读写文件的问题--第一次发帖请多关照
数据加载中...
 
   



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

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