zoukankan      html  css  js  c++  java
  • WP8.1通过StreamSocket连接C++服务器

    注:当服务端和手机模拟器运行在一台机器时,会有奇怪错误。将服务端放在其它机器上更改客户端连接地址,运行正常。或者直接用本机modern调试也可以。
    实例化一个对象

    StreamSocket clientSocket = new StreamSocket();

    建立连接

    
            async void connect()
            {
                try
                {
                    HostName serverHost = new HostName("127.0.0.1");  //设置服务器IP
                    await clientSocket.ConnectAsync(serverHost, 5000);  //设置服务器端口号
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e);
                    clientSocket.Dispose();
                    clientSocket = null;
                }
            }

    接收和发送数据
    由于Socket通信从本质上说是数据流的传输,即byte类型,StreamSocket使用DataReader类和DataWriter类来接收和发送数据流,两个类封装了不少实用的方法,但归根结底是对byte类型数据读取和发送的封装。

            DataReader reader = new DataReader(clientSocket.InputStream); //实例化reader对象,并以StreamSocket的输入流为reader的来源
            reader.InputStreamOptions = InputStreamOptions.Partial;  //采用异步方式
            await reader.LoadAsync(1024);  //获取一定大小的数据流
            string response = reader.ReadString(reader.UnconsumedBufferLength);  //获取字符串,指定为reader的未读取缓冲区的长度
            DataWriter writer = new DataWriter(clientSocket.OutputStream);  //实例化writer对象,以StreamSocket的输出流作为writer的方向
            string content = "ABCDEFGH";  //发送一字符串
            byte[] data = Encoding.UTF8.GetBytes(content);  //将字符串转换为字节类型,完全可以不用转换
            writer.WriteBytes(data);  //写入字节流,当然可以使用WriteString直接写入字符串
            await writer.StoreAsync();  //异步发送数据
            writer.DetachStream();  //分离
            writer.Dispose();  //结束writer

    中断连接

            clientSocket.Dispose();
            clientSocket = null;

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    迅雷的工作原理 [揭密迅雷]
    揭密迅雷BT式下载本质 [揭密迅雷]
    2010年8月09日_周一_Toc control
    2010年8月08日_周日_MapCopyrightText control
    2010年8月08日_周日_Magnifier control
    2010年8月07日_周六_HoverExpandExtender control
    2010年8月11日_周三_ZoomLevel_control
    ArcGIS Server网站发布后地图显示空白的原因之一
    2010年8月10日_周二_TaskManagercontrol
    搭建一个简单的callBack函数
  • 原文地址:https://www.cnblogs.com/ggzone/p/4786421.html
Copyright © 2011-2022 走看看