首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过Web Socket网络在C#服务器上传输JSON字符串数据

通过Web Socket网络在C#服务器上传输JSON字符串数据
EN

Stack Overflow用户
提问于 2018-06-28 01:12:27
回答 1查看 2.1K关注 0票数 1

目前,客户端正在将数据发送到服务器,但在同一台计算机上,我希望客户端将此数据发送到另一台计算机上的服务器。有没有办法做到这一点?我已经附加了发送和接收数据的代码的客户端和服务器端。我希望客户端使用Web将数据发送到另一台计算机上的C#服务器,但只有当服务器和客户端都在同一台计算机上时,它才会发送数据。

服务器代码:

代码语言:javascript
复制
private static void bodyFrameReader_FrameArrived(object sender, BodyFrameArrivedEventArgs e)
    {
        bool dataReceived = false;

        using (BodyFrame bodyFrame = e.FrameReference.AcquireFrame())
        {
            if (bodyFrame != null)
            {
                if (bodies == null)
                {
                    bodies = new Body[bodyFrame.BodyCount];

                }
                bodyFrame.GetAndRefreshBodyData(bodies);
                dataReceived = true;
            }
        }

        if (dataReceived)
        {

            foreach (var client in clients)
            {

                var users = bodies.Where(s => s.IsTracked.Equals(true)).ToList();

                if (users.Count>0){
                    string json = users.Serialize(_coordinateMapper, _mode);

                    Console.WriteLine("jsonstring: " + json);
                    Console.WriteLine("After body serialization and to send");

                    client.Send(json);
                }

            }
        }

    }
}

客户端代码如下:

代码语言:javascript
复制
    var socket = new WebSocket("ws://localhost:8181");

    socket.onopen = function (event) {
        label.innerHTML = "Connection open";
    }


    socket.onmessage = function (event) {
        if (typeof event.data === "string") {

            var jsonObject = JSON.parse(event.data);

            console.log("Json Arrived");


            for (var i = 0; i < jsonObject.skeletons.length; i++) { 

                for (var j = 0; j < jsonObject.skeletons[i].joints.length; j++) {
                    var joint = jsonObject.skeletons[i].joints[j];

                }
            }

Output

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-25 03:54:41

在你的代码中,你有var socket = new WebSocket("ws://localhost:8181");

尝试将其更改为var socket = new WebSocket("ws://192.XXX.XXX.XXX");,其中192.XXX.XXX.XXX是要将数据发送到的另一台计算机的ip地址。

Localhost本质上是指拥有自己的计算机。希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51068189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档