学习记录:Visual Studio 2019中使用C#进行Android开发03 App通过Socket连接到云服务器上运行的程序,之后发送命令与接收数据

在01中我讲到想要解决三个问题,第一个与第二个问题已经解决了,接下来解决第三个问题:App如何通过Socket连接到一个运行在云服务器上正在监听Socket端口的程序,以及如何在连接成功后通过Socket发送命令与接收数据

新建一个Android项目

需要using System.Net;
using System.Net.Sockets;
using System.Threading;

类中定义变量 Socket socket;

 private void ButConnectAndSendData_Click(object sender, System.EventArgs e)      //ButConnectAndSendData是一个按钮,单击后过程如下:
        {
            socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPAddress ip = IPAddress.Parse("你的云服务器IP");
            IPEndPoint point = new IPEndPoint(ip, 云服务器上运行的程序正在监听的端口);
            socket.Connect(point);   //连接
            
            string msg = txtWantSendData.Text;    //txtWantSendData是一个EditText控件,内容格式通常如下 55AA55AA01A400000B9B16E916E9
            byte[] buffer = new byte[1024 * 1024 * 3];
            buffer = Encoding.UTF8.GetBytes(msg);
            socket.Send(buffer);
            
            Thread.Sleep(1000);   //休眠1秒      这里应该做个循环等待,如果2秒内收到了符合要求的数据,就显示收到的数据,否则提示发送成功了,但是没有收到数据.

            byte[] bufferRec = new byte[1024 * 1024 * 3];    //实际接收到的有效字节数
            int len = socket.Receive(bufferRec);
            string str = Encoding.UTF8.GetString(bufferRec, 0, len);
            txtReceivedData.Text = str;                   //txtReceivedData是个TextView控件,用于显示收到的数据.
            
        }

在云服务器放置一个VB6编写的小程序,此小程序主要用于监听某个端口,收到连接请求后就建立一个新连接,在这个新连接中分析收到的命令,如果是符合要求的,就返回合适的数据.当连接断开时,释放资源.

我们的应用场合如下:

多个工业平板计算机在循环检测平板下连接的多种硬件设备状态,检测完毕后就将各种硬件的检测结果放置到变量里.

每个平板连接到一台无线路由器下,带有独立IP地址,同时装有sql server 数据库.

办公室无线路由器通过光纤与现场各个无线路由器相连.

连接到办公室无线路由器的手机将与平板位于同一个ip段,将能够访问平板的sql server数据库,以及通过socket连接到平板监听的端口,这样就可以查看平板中的历史数据,以及获取平板下设备的实时状态.

手机APP先选择想要操作的平板,然后对此平板操作.

 

接下来需要将一台平板与手机连接到一个没有连接宽带的路由器下,准备下一步测试.

 

感想:

随着问题的一步步解决,衷心感谢网络上各位无私提供代码示例的工程师!!!!!

另外,查到的好多资料都提到用Android进行SOCKET连接时需要启动新线程,但是在VS2019中使用C#进行Android连接SOCKET时没有遇到这个问题,感觉实在是太太太方便了.

收获:

以前使用的主要编程语言是VB6,通常都是在VB6无法解决问题的时候使用C++或者C#或者VB.NET做小程序片段配合VB6主程序来解决问题.

经过这些天为了解决问题的学习,我发现C#是一门被我严重低估的语言,它不但可以做桌面C/S开发,居然还可以做Android开发,简直是太奇妙了.

接下来的重点就是*****************认真学习C#语言************.

补充:

买了一本书Visual C#从入门到精通(第9版),非常经典,因为用到的地方不多,所以挑着仔细看了几章 主要是1 2 3 4 5 6 7 10 11章 忽略了类及其他复杂概念,等第一个app学习的差不多了,再返回来阅读剩余部分即可.

 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iamtsfw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值