我有以下情况:
客户端 - >路由器 - > Internet - >专用服务器
客户端:启动时,连接到服务器并保持连接打开.偶尔从服务器接收文件更改的通知.启动同步过程,然后通知服务器是否成功.有时可能会失去连接,因此必须建立新的连接.
服务器(Internet):包含有时会更改的文件.接受传入的客户端,并保留该客户端的tcpclient对象.它永远不能直接与客户端连接,因为客户端位于多个路由器后面; 这就是连接必须保持打开的原因.在进行更改时通知客户端.并且还检查每个客户端是否有同步成功消息.
问题:
如何在客户端和服务器端有效地保持连接打开?
当客户端想要通知服务器同步过程成功时会发生什么,但同时服务器通知客户端有新的更新..?
我做了很多研究,但无法真正找到一直使用相同tcpclient的东西..
顺便说一句:这是一个基于我之前帖子的新线程,是否提出了这个解决方案(重用tcpclient)(udp数据包未通过)
欢迎Daan并提前感谢您的关注
我有一个运行的php脚本,它循环遍历指定目录中的所有文件.它为它找到的每个文件返回name,filesize,modified_date等.该脚本正确返回大多数文件的信息,除了包含中文或其他符号的文件.然后我得到着名的filesize stat失败错误(警告).如何在不更改文件名的情况下解决这个问题?
如果需要,我会提供代码.
在论坛上似乎发现了很多这些错误,但我不能在我的情况中应用大部分错误.
我的问题:
我有一个页面:PosterHome.xaml,上面有一个统一的网格.在我的代码隐藏中,我有一个drawthread:
drawThread = new Thread(new ThreadStart(drawPosters));
drawThread.SetApartmentState(ApartmentState.STA);
drawThread.Start();
Run Code Online (Sandbox Code Playgroud)
这个threadmethod(drawPosters)偶尔被另一个类唤醒,使用autoresetevent.我正在更改统一网格行的那一刻,我在这个方法中得到错误:
while (true)
{
waitEvent.WaitOne();
//do some calculations
// change uniform grid rows & cols
posterUniformGrid.Rows = calculatedRows; //**-> error is first thrown here**
posterUniformGird.Columns = calculatedCols;
}
Run Code Online (Sandbox Code Playgroud)
我该怎么处理?提前致谢.
迎接大安