【WPF】应用程序和已知安卓设备的局域网IP之间进行通信

要在WPF应用程序和已知安卓设备的局域网IP之间进行通信,可以使用Socket通信。以下是一个基本的示例:

  1. 在WPF应用程序中创建一个Socket对象并连接到安卓设备的IP地址和端口号:
using System.Net.Sockets;

// 创建一个Socket对象
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

// 连接到安卓设备的IP地址和端口号
string ipAddress = "192.168.0.100"; // 假设安卓设备的IP地址是192.168.0.100
int port = 1234; // 假设安卓设备的端口号是1234
socket.Connect(ipAddress, port);
  1. 在WPF应用程序中发送消息到安卓设备:
// 要发送的消息
string message = "Hello, Android!";

// 将消息转换为字节数组
byte[] buffer = Encoding.UTF8.GetBytes(message);

// 发送消息到安卓设备
socket.Send(buffer);
  1. 在安卓设备上创建一个Socket服务器来接收来自WPF应用程序的消息。你可以使用Java的ServerSocketSocket类来实现:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

// 创建一个ServerSocket对象并监听指定的端口号
int port = 1234; // 假设监听的端口号是1234
ServerSocket serverSocket = new ServerSocket(port);

// 接受来自WPF应用程序的连接
Socket socket = serverSocket.accept();

// 读取WPF应用程序发送的消息
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message = reader.readLine();

// 处理接收到的消息
System.out.println("Received message: " + message);

// 关闭连接
socket.close();
serverSocket.close();

这只是一个基本的示例,实际应用中可能需要处理更多的错误和异常情况。同时,建议你在进行Socket通信时,考虑安全性和网络稳定性等因素。

遍历到多个ip尝试通信

如果要使用foreach方式建立多个IP的Socket连接,可以将每个IP地址存储在一个List<string>中,然后使用foreach循环遍历该列表,依次建立连接。

以下是一个示例代码:

using System;
using System.Collections.Generic;
using System.Net.Sockets;

class Program
{
   
    static void Main()
    {
   
        List<string> ipAddresses = new List<string>()
        {
   
            "192.168.0.100",
            "192.168.0.101",
            "192.168.0.102"
        };

        int port = 1234;

        foreach (string ipAddress in ipAddresses)
        {
   
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            try
            {
   
                socket.Connect(ipAddress, port);
                Console.WriteLine("Connected to: " + ipAddress);
                // 这里可以进行发送和接收数据的操作
            }
            catch (Exception ex)
            {
   
                Console.WriteLine("Failed to connect to: " + ipAddress + ", Error: " + ex.Message);
            }
            finally
            {
   
                socket.Close();
            }
        }
    }
}

在上述示例中,我们创建了一个List<string>类型的ipAddresses列表,其中存储了多个IP地址。然后,使用foreach循环遍历列表中的每个IP地址,依次创建Socket对象并尝试连接。如果连接成功,将打印连接成功的消息,否则将打印连接失败的消息。

你可以根据实际情况修改ipAddresses列表和port变量来适应你的需求。在连接建立后,你可以在相应的位置进行发送和接收数据的操作。需要注意的是,连接建立后,应该及时关闭Socket连接,以释放资源。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-15 19:48:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-15 19:48:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-15 19:48:03       82 阅读
  4. Python语言-面向对象

    2023-12-15 19:48:03       91 阅读

热门阅读

  1. C# BlockingCollection实现线程间通信

    2023-12-15 19:48:03       60 阅读
  2. vue 导出el-table选择的数据使用笔记

    2023-12-15 19:48:03       52 阅读
  3. Linux中用rpm管理软件

    2023-12-15 19:48:03       42 阅读
  4. WPF中DataGrid的表格常见显示优化

    2023-12-15 19:48:03       57 阅读
  5. 网络安全之计算机网络基础知识<二>

    2023-12-15 19:48:03       59 阅读
  6. ORACLE释放表空间中的空闲数据文件

    2023-12-15 19:48:03       48 阅读
  7. 富文本内容图片点击实现多图预览

    2023-12-15 19:48:03       60 阅读
  8. Linux anacron命令 检测长期不执行的定时任务

    2023-12-15 19:48:03       44 阅读
  9. 30天精通Nodejs--第十三天:MySQL2

    2023-12-15 19:48:03       57 阅读
  10. 计算机网络中的通信子网主要有哪些功能?

    2023-12-15 19:48:03       64 阅读