以下代码在端口15000上发送数据包:
int port = 15000;
UdpClient udp = new UdpClient();
//udp.EnableBroadcast = true; //This was suggested in a now deleted answer
IPEndPoint groupEP = new IPEndPoint(IPAddress.Broadcast, port);
string str4 = "I want to receive this!";
byte[] sendBytes4 = Encoding.ASCII.GetBytes(str4);
udp.Send(sendBytes4, sendBytes4.Length, groupEP);
udp.Close();
Run Code Online (Sandbox Code Playgroud)
但是,如果我不能在另一台计算机上接收它,那就没用了.我所需要的只是将命令发送到局域网上的另一台计算机,并让它接收它并做一些事情.
不使用Pcap库,有什么办法可以实现这个目标吗?我的程序正在与之通信的计算机是Windows XP 32位,而发送计算机是Windows 7 64位,如果它有所不同.我已经研究了各种net send命令,但我无法解决它们.
我也可以访问计算机(XP one)的本地IP,因为它可以在其上物理输入'ipconfig'.
编辑:这是我正在使用的接收功能,从某处复制:
public void ReceiveBroadcast(int port)
{
Debug.WriteLine("Trying to receive...");
UdpClient client = null;
try
{
client = new UdpClient(port);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message); …Run Code Online (Sandbox Code Playgroud) 我正在创建一个系统,允许用户上传项目并为其添加"标记",以帮助他们在搜索中显示.目前,我有一个像这样工作的数据库:
id|title|tags
Run Code Online (Sandbox Code Playgroud)
tags用户自己输入的标记的逗号分隔列表在哪里.我已经读过这是一种可怕的方法,但是拥有一个标签表并将每个ID与项目记录一起存储基本上是一回事.
我怎样才能运行搜索以首先返回最相关的结果?我现在正在使用它,它可以工作,但不按相关性排序:SELECT * FROM items WHERE tags LIKE '%$tag%' LIMIT 0,20";哪里$tag只是一个标记,没有逗号(它在循环中).