当前位置 : 主页 > 编程语言 > c语言 >

如何使用vb.net将消息从一台计算机发送到另一台计算机?

来源:互联网 收集:自由互联 发布时间:2021-06-24
好的,所以我一直想要这样做几年,让我感到惊讶的是,没有人能想出一个解决方案…我想写一个程序(最好是在vb.net中)可以发送消息给与我连接到同一网络的另一台计算机(或设备).我希望
好的,所以我一直想要这样做几年,让我感到惊讶的是,没有人能想出一个解决方案…我想写一个程序(最好是在vb.net中)可以发送消息给与我连接到同一网络的另一台计算机(或设备).我希望消息显示在弹出消息框中的另一台计算机(或设备)上.此外,如果可以通过某种蓝牙连接完成,那将是理想的,如果没有,那么本地IP连接将会这样做.我不知道我会怎么做但我知道这是可能的,因为我已经看到一些程序这样做…事实上我已经看到一个名为blackrain的程序,没有安装任何额外的软件,可以显示消息一个ipod触摸屏,指示yser做什么,然后几乎立即显示他们在计算机屏幕上输入的结果.如果有人有任何想法,我想知道它是如何工作的,请随时分享!

额外细节:

>我有很多vb.net,命令行函数和vbscript的经验.
>我目前正在运行Windows 7 Professional x64
>我有一个外置蓝牙迷你适配器.
>我希望这是(如果可能的话)类似于那些让您通过wifi同步控制笔记本电脑光标的ipod / iphone应用程序;从某种意义上说,不需要设置,也不需要额外的软件. (例如:remotepad.ipa)

消息框的代码如下:

ObjClient = New TcpClient("127.0.0.1", 1000)
TcpClient.Start()
Messagebox.Show("Popup Message Here")
TcpClient.Close()

我知道这段代码在命令提示符中会做同样的事情:

msg * /SERVER:localhost hello

或者此代码将在命令提示符中执行相同的操作:

msg * hello > localhost

但是如果可能的话,我想在没有任何批处理文件的情况下这样做,因为我不想在另一端设置任何东西.

谢谢!

它与套接字或端口有什么关系吗?

使用TcpClient和相关库肯定是正确的答案.

将数据写入特定IP /端口的示例代码:

''' <summary>
''' Send data over TCP/IP network
''' </summary>
''' <param name="data">Data string to write</param>
''' <param name="IP">The connected destination TcpClient</param>
Public Sub WriteData(ByVal data As String, ByRef IP As String)
    Console.WriteLine("Sending message """ & data & """ to " & IP)
    Dim client As TcpClient = New TcpClient()
    client.Connect(New IPEndPoint(IPAddress.Parse(IP), My.Settings.CommPort))
    Dim stream As NetworkStream = client.GetStream()
    Dim sendBytes As Byte() = Encoding.ASCII.GetBytes(data)
    stream.Write(sendBytes, 0, sendBytes.Length)
End Sub

使用TcpListener来监视传入的数据.

http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspx

编辑:要知道要将其发送到哪个IP …您可以拥有要连接的内部IP列表,或者让每个联网计算机“订阅”到您的程序(如果它是静态托管在一个盒子上).出于我的目的,当我使用此代码时,主机进程位于已知服务器上.想要接收消息的客户端进程向主机发送快速消息,然后主机将记录IP以便稍后发送.

获取请求客户端的IP:

''Given variable m_listener is an active TcpListener...
Dim client As TcpClient = m_listener.AcceptTcpClient()
Dim requesterIP As String = client.Client.RemoteEndPoint.ToString().Split(New Char() {":"})(0)
网友评论