各位大虾好! 今天用Sockets做了一个网络监听程序 代码如下:
//定义监听地址于监听端口
TcpListener listener = new TcpListener(IPAddress.Parse("169.254.1.243"),42031);
//定义接收客户端数据流
NetworkStream clientStream;
while (true)
{
int readBytes = 0;
listener.Start();//开始监听端口,设置最大连接数为5个。
TcpClient client = listener.AcceptTcpClient();//开始等待客户端连接内容。
clientStream = client.GetStream();//获取客户端传送的字节流。
byte[] buffe = new byte[1024];//定义接收字节流组数。
在这个现实长度为21 就说在这里数据就丢失了! readBytes = clientStream.Read(buffe, 0, 1024);//返回读取字节流中的字符长度
string netCents = Encoding.GetEncoding("ISO-8859-1").GetString(buffe); //将字符数组转换为字符串。x
MessageBox.Show(netCents);
byte[] rtn=new byte[1024];
rtn = Encoding.GetEncoding("ISO-8859-1").GetBytes("接收成功".ToCharArray());
clientStream.Write(rtn, 0, rtn.Length);
clientStream.Close();
listener.Stop();
}
在这个监听中获取vc++系统发送的数据被截取了 在vc系统中发送数据156|DF|62010000002|974A33E663ABC1AA1C7DF0CFB48B6DB8E7ADA6472CE84C913CA5B268DE752BB90C537C86B88876AC3546A119A71DF60BEA462CD0D4164A80A387E86E2B1AF0DB341C12388A4E172B|
是这样的但是接收是数据变成12|DF|62010000002|| 就是说 中间的数据没了 数据丢失了 这个为什么,请大家帮帮小弟。第一次和vc程序对接 没有经验,改了很多内容都不行,希望高手帮帮,先谢谢了!
//定义监听地址于监听端口
TcpListener listener = new TcpListener(IPAddress.Parse("169.254.1.243"),42031);
//定义接收客户端数据流
NetworkStream clientStream;
while (true)
{
int readBytes = 0;
listener.Start();//开始监听端口,设置最大连接数为5个。
TcpClient client = listener.AcceptTcpClient();//开始等待客户端连接内容。
clientStream = client.GetStream();//获取客户端传送的字节流。
byte[] buffe = new byte[1024];//定义接收字节流组数。
在这个现实长度为21 就说在这里数据就丢失了! readBytes = clientStream.Read(buffe, 0, 1024);//返回读取字节流中的字符长度
string netCents = Encoding.GetEncoding("ISO-8859-1").GetString(buffe); //将字符数组转换为字符串。x
MessageBox.Show(netCents);
byte[] rtn=new byte[1024];
rtn = Encoding.GetEncoding("ISO-8859-1").GetBytes("接收成功".ToCharArray());
clientStream.Write(rtn, 0, rtn.Length);
clientStream.Close();
listener.Stop();
}
在这个监听中获取vc++系统发送的数据被截取了 在vc系统中发送数据156|DF|62010000002|974A33E663ABC1AA1C7DF0CFB48B6DB8E7ADA6472CE84C913CA5B268DE752BB90C537C86B88876AC3546A119A71DF60BEA462CD0D4164A80A387E86E2B1AF0DB341C12388A4E172B|
是这样的但是接收是数据变成12|DF|62010000002|| 就是说 中间的数据没了 数据丢失了 这个为什么,请大家帮帮小弟。第一次和vc程序对接 没有经验,改了很多内容都不行,希望高手帮帮,先谢谢了!
接收信息时用byte[] packetBuff = new byte[64];
int len = newClient.Receive(packetBuff, packetBuff.Length, 0);
string receiveStr=Encoding.Default.GetString(packetBuff,0,len).TrimEnd('\0');
发送信息时用newClient.Send(Encoding.Default.GetBytes(sendMsg), Encoding.Default.GetBytes(sendMsg).Length, 0);
试试看,希望对你有帮助。