草庐IT

同步Socket

全部标签

c# - 如何判断 Socket 何时断开连接

在客户端,我需要知道我的套接字连接何时/是否已断开。但是,Socket.Connected属性始终返回true,即使在服务器端已断开连接并且我已尝试通过它发送数据之后也是如此。谁能帮我弄清楚这里发生了什么。我需要知道套接字何时断开连接。SocketserverSocket=null;TcpListenerlistener=newTcpListener(1530);listener.Start();listener.BeginAcceptSocket(newAsyncCallback(delegate(IAsyncResultresult){Debug.WriteLine("ACCEPT

c# - 如何同步任务?

假设我有一个保存到文件的异步方法:asyncTaskSaveToFileAsync(){varfile=awaitfolder.GetFileAsync(...)varstream=file.OpenFileAsync(...)///etc}现在假设同时调用了两次SaveToFileAsync。这是一个问题,因为您不能同时写入同一个文件如果这是一个常规方法,lock()会解决这个问题:voidSaveToFile(){lock(something){///codehere}}但是,在异步方法中不允许使用锁。当然,可以调用Monitor.Enter()或使用互斥体,但这些对象与线程一起工

解决Python Socket UDP端口侦听线程内更新UI界面卡顿、奔溃的问题

 网络读卡器介绍:WIFI无线网络RFID云读卡器远程网络开关物流网NB-IoT4G刷卡阅读器-淘宝网(taobao.com)  Python使用PyQt5做UI界面,开启线程侦听UDP端口,端口接收到网络读卡器的读卡数据后刷新UI界面显示接收数据,解析数据包信息并向读卡器发送显示文字、驱动读卡器播报语音、蜂鸣响声提示、开启继电器开关等操作。  在接收数据的子线程内如果直接更改UI窗口控件来显示信息,会产生显示信息刷新不及时、造成显示卡顿、卡死或软件直接奔溃等问题,产生原因是PyQt5中,数据接收处理子线程内是不能刷新UI显示线程的,必段使用创建信号,触发时将显示信号传送给槽函数来刷新UI的方

C++学习之Socket

Socket是什么socket就是套接字的意思,用于描述地址和端口。应用程序通过socket向网络发出请求或者回应。socket编程有三种:流式套接字(SOCK_STREAM)数据报套接字(SOCK_DGRAM)原始套接字(SOCK_RAW)前两者较常用。基于TCP的socket编程是流式套接字。服务端和客户端都做了什么服务端:建立socket,声明自身的port和IP,并绑定到socket,使用listen监听,然后不断用accept去查看是否有连接。如果有,捕获socket,并通过recv获取消息的内容,通信完成后调用closeSocket关闭这个对应accept到的socket。如果不需

c# - Socket编程多客户端一台服务器

我刚刚开始使用C#进行套接字编程,现在有点被这个问题困住了。如何在不为每个客户端创建线程的情况下在单个服务器上处理多个客户端?当有10个客户端时,每个客户端的一个线程工作正常,但如果客户端数量增加到1000个客户端,是否为每个客户端创建一个线程是否可取?如果还有其他方法可以做到这一点,有人可以告诉我吗? 最佳答案 尝试使用异步服务器。以下示例程序创建了一个服务器,用于接收来自客户端的连接请求。服务器是用异步套接字构建的,因此服务器应用程序的执行在等待来自客户端的连接时不会被挂起。应用程序从客户端接收一个字符串,在控制台上显示该字符串

c# - 同步两个 RichTextBox 的滚动位置?

在我的应用程序表单中,我有两个RichTextBox对象。它们将始终具有相同数量的文本行。我想“同步”这两个之间的垂直滚动,这样当用户改变其中一个的垂直滚动位置时,另一个滚动相同的量。我该怎么做呢? 最佳答案 感谢杰的回答;经过更多搜索后,我还找到了描述的方法here.我将在下面为任何感兴趣的人概述。首先,声明以下枚举:publicenumScrollBarType:uint{SbHorz=0,SbVert=1,SbCtl=2,SbBoth=3}publicenumMessage:uint{WM_VSCROLL=0x0115}pub

c# - 每当在 wpf 中滚动任何一个时,两个 ScrollViewer 的同步滚动

我已经完成了线程:bindingtwoVerticalScrollBarsonetoanother它几乎帮助实现了目标,但仍然缺少一些东西。左右移动滚动条或上下移动滚动条会在我的两个滚动查看器中产生预期的滚动行为,但是当我们尝试使用/单击滚动查看器中这些滚动条末端的箭头按钮进行滚动时,只有一个滚动查看器被滚动,而不是预期的行为。那么我们还需要添加/编辑什么来解决这个问题? 最佳答案 一种方法是使用ScrollChanged事件来更新另一个ScrollViewerprivatevoidScrollChanged(objectsende

c# - socket 的 Shutdown、Disconnect、Close 和 Dispose 到底是做什么的?

针对网络编程新手,很难找到关于这四种方法实际上的作用的简单解释。人们通常只是陈述他们认为在特定情况下关闭套接字的正确方法,而不是每个步骤背后发生的事情。遵循以人为本的哲学,你能解释一下Shutdown、Disconnect、Close和Dispose方法? 最佳答案 安answer在StackOverflow上让我觉得我终于有了一些理解。然后我去测试了一下,这是新手观点的总结。如果我错了,请纠正我,因为这是基于推理,而不是专业知识。关机Shutdown禁用Send和/或Receive方法,具体取决于提供的参数。它不会禁用底层协议(p

javascript - 在javascript中制作同步功能?

这个问题在这里已经有了答案:HowshouldIcall3functionsinordertoexecutethemoneaftertheother?(11个答案)关闭8年前。我想要同步函数,就像jQuery的$.ajax({..,async:false,..});。functionA(){lalala..};functionB(){dadada..};functionC(){..};,这些都包括一些效果,如淡入、淡出、滑动...等。但是我刚刚发现这些函数是否像下面这样调用..A();B();C();所有效果几乎同时开始。在我的理解中,发生这种情况是因为函数被同步调用,但这并不意味着函

javascript - 使用服务 worker 存储 REST 请求以同步它们

我正在考虑使用服务工作线程将我的应用程序离线。我已经通过缓存资源取得了令人满意的结果,但我还必须检查onfetch我是否已连接到互联网,如果没有-存储请求,并将其同步推送。我明白,future的onsync会对此有所帮助,但我需要-甚至是临时的-解决方案。我试过将请求存储在工作人员的数组中,但它不是持久的-在计算机重新启动后不起作用(而SW工作并提供离线内容)。什么是好的方向-以某种方式将它像文件一样存储在缓存中?或者使用IndexedDB/SimpleDB(AccessingindexedDBinServiceWorker.Racecondition)?