‘壹’ 用udp协议发送数据
1. 在资源管理器的查看或工具菜单中选文件夹选项,选中"根据所选设置自定义"一项之后按设置按钮,选中"在同一窗口中打开每个文件夹"一项就好了。
2. 我的电脑中没有这个文件,说明它是某个软件的文件,你只要用查找文件的功能找一下就可以知道它在什么位置,根据文件夹的名称判断出是哪个软件的文件,卸载或重装一遍这个软件应该可以解决。
我想是这个软件冬冬
ZoneAlarm Free
这个软件你是否装了
ZoneAlarm来保护你的电脑,防止Trojan(特洛伊木马)程序,Trojan也是一种极为可怕的程序。ZoneAlarm可以帮你执行这项重大任务喔。而且还是免费的。使用很简单,你只要在安装时填入你的资料,如有最新的ZoneAlarm,你就可以免费网上更新。安装完后从新开机,ZoneAlarm就会自动启动,帮你执行任务。当有程序想要存取Internet时,如网络浏览器可能会出现连不上网络,这时你可以在右下角ZoneAlarm的小图示上按两下鼠标左键,选取Programs的选项,勾选你要让哪些软件上网,哪些不可以上网,利用此种方法来防治一些来路不明的软件偷偷上网。最好的方法是锁住(Lock)网络不让任何程序通过,只有你核准的软件才可以通行无阻。你还可利用它来看看你开机后已经使用多少网络资源,也可以设定锁定网络的时间。这么好用的软件你一定要亲自使用才能感觉到它的威力。
如装了应该没有问题
‘贰’ 用udp协议发送数据
vsmon - vsmon.exe - 进程信息
进程文件: vsmon 或者 vsmon.exe
进程名称: True Vector Internet Monitor
描述:
vsmon.exe是ZoneAlarm个人防火墙的一部分。它用于监视网络浏览和对网络攻击进行警报。
出品者: Zone Labs Inc.
属于: ZoneAlarm
系统进程: 否
后台程序: 是
使用网络: 否
硬件相关: 否
常见错误: 未知N/A
内存使用: 未知N/A
安全等级 (0-5): 0
间谍软件: 否
Adware: 否
病毒: 否
木马: 否
http://www.abcku.com/vsmon/
这个是所有进程的一个站点有疑问可以去看一下
‘叁’ delphi 使用UDP发送结构体问题
SendStruct = record
ASize: Integer;
Name: array[0..0] of ansichar;
end;
你这样定义结构后,你就不能用new来分配内存了,因为用new长度就算不对了,所以要用getmem,自己算要分配的长度。比如下面:
var p:PSendStruct;
s:string;
len:Integer;
begin
s:='hello';
len:=sizeof(TSendStruct)+length(s);
getMem(p,len);
FillChar(p^,len,0);
p^.ASize:=len;
move(s[1],p^.Name,length(s));
//self.Caption:=pchar(@p^.Name);
IdUDPClient1.SendBuffer(p^, len);
freeMem(p);
end;
接收的时候类似,也用getmem分配。udp发送的数据包大小是有限制的(好象1024字节),所以如果你的数据包大过这个限制,你还得自己分包。
另外,定义网络发送的结构,最好加上packed关键字,结构会小不少。比如:
SendStruct =packed record
ASize: Integer;
Name: array[0..0] of ansichar;
end;
‘肆’ (c#)udp文件发送问题
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace 文件传输
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iped = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 10000);
int orze = 0;
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
string ip,port,str;
socket.Bind(iped); //与当前一个套接字进行绑定
EndPoint ep = (EndPoint)(new IPEndPoint(IPAddress.Any,0));
byte[] buff=new byte[1024];
socket.ReceiveFrom(buff, ref ep); //侦听传入请求
//sendfile = Encoding.Unicode.GetString(buff);
//sendfile = sendfile.Substring(0, Convert.ToInt32(sendfile.Substring(0, 3)));
str = ((IPEndPoint)ep).ToString();
ip = str.Substring(0, str.IndexOf(":"));
port = str.Substring(str.IndexOf(":") + 1); //记录IP地址
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ip),Convert.ToInt32(port));
byte[] b = Encoding.Unicode.GetBytes("1");
socket.SendTo(b, ipe); //发送模拟的同意信号
Stream sr = new FileStream("f:\\test.rar", FileMode.Create, FileAccess.ReadWrite); //创建一个流
while (true)
{
socket.ReceiveFrom(buff, ref ep);//接收传入的数据
try
{
str = Encoding.Unicode.GetString(buff);
if (str.Substring(0, 6) == "TheEnd") //判断文件的传输是否结束
break;
}
catch
{}
sr.Write(buff,0,(int)(buff.Length)); //将接收到的数据写入流
socket.SendTo(b,ipe); //请求下一段数据
}
sr.Close(); //关闭当前流
MessageBox.Show("文件接收成功!");
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
{
Stream ss=new FileStream ("e:\\test.rar",FileMode.Open,FileAccess.ReadWrite);
//string mess = "sss";
byte[] buff=new byte[1024];
EndPoint ep=((EndPoint)iped);
socket.SendTo(Encoding.Unicode.GetBytes("1"), iped); //发送模拟的文件传输请求
socket.ReceiveFrom(buff, ref ep); //等待对方回应
do
{
buff = new byte[1024];
orze = ss.Read(buff, 0, 1024);
socket.SendTo(buff, iped);
socket.ReceiveFrom(buff, ref ep);
} while (orze > 0);
buff = Encoding.Unicode.GetBytes("TheEnd");
socket.SendTo(buff, iped); //发送结束信号
ss.Close(); //关闭文件流
MessageBox.Show("文件传送已完成!");
// orze = 0;
}
private void button2_Click(object sender, EventArgs e)
{
backgroundWorker2.RunWorkerAsync();
}
}
}
‘伍’ 你好,我想请教一下udp发送数据包的问题,是这样发送的数据是16进制的
“80000f29”发出去"38 30..."含义是:有8个可显字符('8' '0' '0' '0'...)被发出,'8'的值本身是0x38, 把内存显示变为可显示就是"38...
要发出“80 00 0f 29, 也就是说发出的是 0x80 0x00 0x0f 0x29, 那就把这些二进制存到txt中去好了,再走之前的流程就达到预期了。注意二进制存到txt去,和之前的“80000f29”的字符串 是2码事。你可以研究一下二进制txt和字符串txt的区别即可。
‘陆’ C语言发送UDP数据的!
不明白你要干嘛,发表了几个陈述句,贴了段code...
‘柒’ AT指令通过UDP协议直接发送十六进制数
这个。。。为了避免在信息里不能出现保留字,所以它只能通过字符发送,比如有个0x0d 0x0a那就完了,自己写个转换函数么
void UncharToHex(char *data,unsigned char sourcedata)
{
unsigned char a = sourcedata >> 4;
data[0] = a > 9? 'A'+ a -10:'0' + a;
a = sourcedata & 0x0f;
data[1] = a > 9? 'A'+ a -10:'0' + a;
}
data是出口参数,当指针传递用- -!
‘捌’ 我用udp发送一个16进制包,接收端怎么解析。
数据传输都是以字节流方式
发送端包装成 byte[]数组,发送就可以了
和什么进制数据没有关系,进制只是数据写的方式。
不同的进制写法只是程序员看的,在内存里都是一样的
‘玖’ Labview使用UDP发送16进制数据时怎么转换高低位
数值->数据操作->逻辑移位
‘拾’ 怎么实现udp传输一个文件
用fopen函数来建文件,用fwrite来往文件中写数据,用fclose来关闭文件……这跟是否用UDP没有任何关系。
UDP发送数据不保证正确性,所以接收方需要验证收到的数据并且向发送方确认,才能保证正确传输。