当前客户端正在将数据发送到服务器,但是我希望客户端在同一台计算机上将数据发送到另一台计算机上的服务器。有办法吗?我已经附加了发送和接收数据的代码的客户端和服务器端。我希望客户端使用Web套接字将数据发送到另一台计算机上的C#服务器,但是仅当服务器和客户端都在同一台计算机上时才发送数据。
服务器代码:
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);
}
}
}
}
}
下面的客户代码:
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];
}
}
答案 0 :(得分:1)
在您的代码中,您有var socket = new WebSocket("ws://localhost:8181");
尝试将其更改为var socket = new WebSocket("ws://192.XXX.XXX.XXX");
,其中192.XXX.XXX.XXX
是要将数据发送到的另一台计算机的IP地址。
Localhost
本质上是指自己的计算机。希望这对您有所帮助!