草庐IT

Winforms

全部标签

c# - 为什么我的表单在调用 BeginConnect 时卡住?

我正在使用来自AsynchronousClientSocketExample的示例usingSystem;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Threading;usingSystem.Text;//Stateobjectforreceivingdatafromremotedevice.publicclassStateObject{//Clientsocket.publicSocketworkSocket=null;//Sizeofreceivebuffer.publicconstintBufferSize=256;/

c# - Threading、Winforms、将TCP操作与主窗口窗体分离

在我的主窗口窗体中,我正在进行一些TCP/IP操作。我目前正在重构,所以一切都在单独的类中。我将这些功能分开了(TCP现在由一个名为Communicator的类处理),但我只是注意到this.Invoke(PDDelegate,newObject[]{tempstr});这部分依赖于Form类中的一些基础设施。这就是设置委托(delegate)来处理通过TCP管道到达的数据的原因。我很想在调用Communicator.Connect时传递对主窗口的引用,所以我可以这样做window.Invoke(PDDelegate,newObject[]{tempstr});但这对我来说似乎是一个h

c# - 如何设置连接到主机 PC 的设备的 IP 地址? C# 窗体?

我有一个ModbusTCP/IP到MODBUSRTU转换器,其默认IP为192.168.0.1。我需要开发一个小型c#Winform应用程序来将此设备的IP地址更改为任何所需的IP地址。我该怎么做? 最佳答案 您可以使用WMI(WindowsManagementInstrumentation)。首先,您必须将对System.Management的引用添加到您的项目中。其次,您需要通过名称为您的网络连接找到NetworkInterface:usingSystem.Net.NetworkInformation;usingSystem.M

c# - 如何在 .NET 中检测通过串行端口或以太网连接的设备状态的变化

我有一个应用程序可以通过串口和以太网连接到Controller。Controller不断地向PC抛出数据。我正在用C#编写应用程序。我在C#中创建了SerialPort对象并在dataReceived方法中接收数据。类似地,对于以太网,我使用了TCPListener及其方法startAcceptClient来接受来自客户端的连接。现在,我的问题是Controller是否已关闭或电缆是否已从PC上拔下;如何在应用程序中检测这些事件? 最佳答案 我对TCPListener不是很熟悉,但是对于SerialPort我使用了一个计时器,每次滴

C# TcpClient 更新(对于 IRC 客户端)

我基本上是在尝试使用C#、WinForms和TcpClient制作一个准系统IRC客户端,它将显示来自irc服务器的原始数据到文本区域(textbox1)。但是我正在努力更新代码(从服务器读取流)。现在我有一个计时器,它运行一个函数(listener),每100毫秒从TCP流中读取一次。但是,我的应用程序卡住并且光标消失,并且应用程序挂起以尝试获取更多数据。那么什么是更好的更新功能呢?usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Dr

c# - System.Argument 异常 :Specified argument was out of range of valid value

经过多次修复后,我仍然遇到一个令人讨厌的错误。我使用VS2013的DeveloperCommandPrompt调试和运行我的服务器,并使用VS2013运行客户端。首先我运行我的服务器没有任何问题,但是当我启动客户端时,将数据放入textbox然后点击发送问题出现了。这是解决问题的服务器端代码。IPAddressipaddr=IPAddress.Parse("127.0.0.1");TcpListenerserverSocket=newTcpListener(ipaddr,8002);intrequestCount=0;TcpClientclientSocket=default(TcpC

c# - StreamReader 不会停止读取 C#

我在两台使用Windows窗体的计算机之间建立了TCP连接。我有一个整数数组,我正在使用XmlSerializer类对其进行序列化,并使用StreamWriter发送它并使用StreamReader接收它。发送:NetworkStreamstream=m_client.GetStream();//m_clientisaTCPclientStreamWriterm_writer=newStreamWriter(stream);int[]a=newint[3]{10,20,30};XmlSerializerserializer=newXmlSerializer(typeof(int[]))

c# - 在 winforms 或 wpf 上托管的 Tcp wcf 服务挂起

我在winforms或WPF上托管的TcpWcf服务中遇到错误。该服务挂起或引发“线程已退出”错误。相同的代码在控制台应用程序中运行良好。谢谢。服务器:namespaceWCFService{//interfacedeclarationsjustliketheclientbutthecallback//declerationisalittledifferent[ServiceContract]interfaceIMessageCallback{[OperationContract(IsOneWay=true)]voidOnMessageAdded(stringmessage,DateT

c# - Winform 中的 TCP 连接

我刚刚建立了我的第一个TCP连接,我已经使用程序套接字测试来检查我的代码是否有效。它是做什么的。现在,我要做的是连接到没有可访问IP地址但有专用网址的服务器。例如,我的旧代码是这样的:privatevoidbutton1_Click(objectsender,EventArgse){IPAddressipAddress=IPAddress.Parse("127.0.0.1");using(TcpClientclient=newTcpClient()){client.Connect(ipAddress,21);lblStatus.Text="Connected...";}}这很好用。现在

c# - 通过 TCP C# 发送 Byte[] (TreeView)

这听起来有点复杂,但我在计算机上有一个TreeView。然后我将它转换为字节数组,通过TCP发送,将字节数组转换回TreeView,然后再次查看它。出于某种原因,它非常有问题,完全相同的TreeView可能工作一次,然后在接下来的10次都没有。如果TreeView较小,它似乎工作得更多。我知道一个事实错误是通过tcp发送它,因为我制作了一个程序,它只是将它转换为字节数组并返回,该程序在100%的时间内工作。这是代码:byte[]data=SerilizeQueryFilters(TreeFiles);//Converttobyte[]function,100%worksfine.str