c# - 通过 TCP/IP 将字符串传输到多台计算机
问题描述
此代码当前获取 kinect Body 数据并将其写入 Excel 工作表。我有另一个代码能够在两台计算机之间创建 TCP/IP 连接。我将如何最好地结合这两个想法?
我要求通过网络发送此联合字符串数据并由另一台服务器计算机实时收集,而不是在 Excel 文件中。你有什么建议吗 ?
换句话说,我有一些服务器代码,但我希望服务器侦听客户端代码(另一台计算机)正在生成的 Kinect 字符串数据,并且当前正在将其写入本地 excel 文件。
客户端
...
_recordBody = !_recordBody;
if (_recordBody == false)
{
recordButton.Content = "Record";
return;
}
recordButton.Content = "Stop Recording";
currentTrackingID = 0;
// create a csv file and write file header
string currPath = System.IO.Directory.GetCurrentDirectory();
string folder = "recordings";
string recordPath = System.IO.Path.Combine(currPath, folder);
if (!Directory.Exists(recordPath))
{
Directory.CreateDirectory(recordPath);
}
timeRecordingStarted = DateTime.Now;
string filename = timeRecordingStarted.ToString("yyyy-MM-dd HH-mm-ss");
filename = filename + ".csv";
filePath = System.IO.Path.Combine(recordPath, filename);
string[] writtentext = {"time," + "headX," +
"headY," +
"headZ," +
"headS," +
"neckX," +
"neckY," +
"neckZ," +
"neckS," +
"spineShoulderX," +
"spineShoulderY," +
"spineShoulderZ," +
...
"handLeftY," +
"handLeftZ," +
"handLeftS," +
"handTipRightX," +
"handTipRightY," +
"handTipRightZ," +
"handTipRightS," +
"handTipLeftX," +
"handTipLeftY," +
"handTipLeftZ," +
"handTipLeftS"
};
File.WriteAllLines(filePath, writtentext);
...
服务器代码
static TcpListener tcpListener = new TcpListener(10);
static void Listeners()
{
Socket socketForClient = tcpListener.AcceptSocket();
if (socketForClient.Connected)
{
Console.WriteLine("Client:"+socketForClient.RemoteEndPoint+" now connected to server.");
NetworkStream networkStream = new NetworkStream(socketForClient);
System.IO.StreamWriter streamWriter =
new System.IO.StreamWriter(networkStream);
System.IO.StreamReader streamReader =
new System.IO.StreamReader(networkStream);
{
string theString = streamReader.ReadLine();
Console.WriteLine("Message recieved by client:" + theString);
if (theString == "exit")
break;
}
streamReader.Close();
networkStream.Close();
streamWriter.Close();
//}
}
socketForClient.Close();
Console.WriteLine("Press any key to exit from server program");
Console.ReadKey();
}
public static void Main()
{
//TcpListener tcpListener = new TcpListener(10);
tcpListener.Start();
Console.WriteLine("************This is Server program************");
Console.WriteLine("How many clients are going to connect to this server?:");
int numberOfClientsYouNeedToConnect =int.Parse( Console.ReadLine());
for (int i = 0; i < numberOfClientsYouNeedToConnect; i++)
{
Thread newThread = new Thread(new ThreadStart(Listeners));
newThread.Start();
}
}
}
解决方案
推荐阅读
- c - 将代码组织成模块化的、自包含的块
- python - 根据数组元素从 ndarray 中采样随机索引
- amazon-web-services - 从 EC2 迁移到 Elastic Beanstalk
- heroku - 如何免费托管大型网站?
- c# - 将桌面应用程序的数据库与另一台计算机上的数据库连接起来
- selenium-chromedriver - 如何在 Selenium Appium C# 中使用 headless
- html - 使用CSS网格布局,如何移动外壳密码旁边的“复选框”?
- javascript - 如何在 react-native 中渲染 json 数据
- python - 地理数据框中所有线串(约 100 万)的凸壳
- vue.js - 处理内部组件中的嵌套对象变量未定义错误 - vuejs