做了个基于winform的Socket编程,一运行就没有响应怎么回事?

问题描述

如题:TCP/IP编程代码是这样的while(true){1。客户端向发送请求2。服务端向客户端返回数据3。客户端将服务端返回的数据写入数据库4。sleep1分钟}为什么客户端一运行就没有响应,窗口无法移动,但是其实还是在读数据的,每隔1分钟数据库刷新时能看到数据。多谢大家!

解决方案

解决方案二:
这明显是一个死循环,如果不懂开线程肯定就悲剧了
解决方案三:
肯定要用多线程,否则就死循环了
解决方案四:
将代码改成newThread(()=>{while(true){1。客户端向发送请求2。服务端向客户端返回数据3。客户端将服务端返回的数据写入数据库4。sleep1分钟}}).Start();
解决方案五:
开一个新线程,把UI线程跟你写的这个分开
解决方案六:
引用楼主veryshowboy1的回复:

如题:TCP/IP编程代码是这样的while(true){1。客户端向发送请求2。服务端向客户端返回数据3。客户端将服务端返回的数据写入数据库4。sleep1分钟}为什么客户端一运行就没有响应,窗口无法移动,但是其实还是在读数据的,每隔1分钟数据库刷新时能看到数据。多谢大家!

sleep1分钟有问题这么长sleep还不如改成timer控件呢当然最好的方法是开线程,可以避免重入问题
解决方案七:
你一直占着UI主线程去做那种那么耗时的操作,当然会出现界面卡死现象。遇到耗时操作一般都是开个子线程去执行的。建议好好的去看看线程运作机制,以及CPU对线程的执行调度方面的原理资料

时间: 2024-10-27 16:36:49

做了个基于winform的Socket编程,一运行就没有响应怎么回事?的相关文章

基于C#的socket编程的TCP异步的实现代码_C#教程

一.摘要 本篇阐述基于TCP通信协议的异步实现. 二.实验平台 Visual Studio 2010 三.异步通信实现原理及常用方法 3.1 建立连接 在同步模式中,在服务器上使用Accept方法接入连接请求,而在客户端则使用Connect方法来连接服务器.相对地,在异步模式下,服务器可以使用BeginAccept方法和EndAccept方法来完成连接到客户端的任务,在客户端则通过BeginConnect方法和EndConnect方法来实现与服务器的连接. BeginAccept在异步方式下传入

Java Socket编程实例(一)- TCP基本使用_java

一.服务端代码: import java.net.*; // for Socket, ServerSocket, and InetAddress import java.io.*; // for IOException and Input/OutputStream public class TCPEchoServer { private static final int BUFSIZE = 32; // Size of receive buffer public static void main

解析C语言基于UDP协议进行Socket编程的要点_C 语言

两种协议 TCP 和 UDP前者可以理解为有保证的连接,后者是追求快速的连接. 当然最后一点有些 太过绝对 ,但是现在不需熬考虑太多,因为初入套接字编程,一切从简. 稍微试想便能够大致理解, TCP 追求的是可靠的传输数据, UDP 追求的则是快速的传输数据. 前者有繁琐的连接过程,后者则是根本不建立可靠连接(不是绝对),只是将数据发送而不考虑是否到达. 以下例子以 *nix 平台的便准为例,因为 Windows平台需要考虑额外的加载问题,稍作添加就能在 Windows 平台上运行UDP. UD

Java基于Tcp协议的socket编程实例_java

本文实例讲述了Java基于Tcp协议的socket编程方法,分享给大家供大家参考.具体分析如下: 以下是一对一的通信编程实现,后续会继续学习一个服务器监听多个客户端的实现. 这里用到的主要步骤如下: 第一步:以特定端口(如4800)新建socket对象 第二步:以系统输入设备构造BufferedReader对象,该对象用于接收系统键盘输入的字符 第三步:以socket对象 得到输出流来构造PrintWriter 第四步:以socket对象得到输入流来构造相应的BufferedReader对象,该

小弟目前要做一个SOCKET编程客户端通讯软件,与多个服务器进行通讯

问题描述 这个项目主要是上位机与下位机通讯方面的东西,因为之前从来没有写过这方面的软件,所以对这个是一无所知.这个软件我想实现的功能就是编写一个客户端上位机软件与多台服务器通讯,当然这些服务器都是一些网卡设备说具体一点就是一些带网卡的单片机或者ARM,在此之前我试了很多次方法(比如说异步多线程什么的)都没有成功但是几天前用了异步方法只是连接成功了但是异步接受还是不行,我知道解决这个方面的问题就是你连接多少个服务器IP就必须必须写多少个接收数据的方法,但是这个系统没有限制呀<有可能是100个设备,

PHP Socket 编程过程详解

介绍 Socket用于进程间通信.进程间通信通常基于客户端-服务端模型.此时,客户端-服务端是可以彼此交互的应用程序.客户端和服务端之间的交互需要连接.Socket编程负责的就是为应用程序之间建立可进行交互的连接. 在本文中,我们将学习如何用PHP创建一个简单的客户端-服务端.我们还将学习如何客户端应用程序如何发送消息到服务端,以及如何从服务端接受消息. 使用代码 目的:开发一个客户端用于发送string消息到服务端,服务端将相同的信息反转后返回给客户端. PHP服务器 第1步:设置变量,如"主

浅谈.NET下的多线程和并行计算(九)Winform中多线程编程基础 下

在之前的文章中我们介绍过两种Timer和BackgroundWorker组件,在上文中我们提到过,强烈建议在UI 线程上操作控件,否则很容易产生人品问题.可以想到,上次介绍的两个Timer基于ThreadPool,回调方 法运行于不同于UI线程的新线程上,在这个方法中操作控件需要进行 Invoke或BeginInvoke.其实,还有 第三种System.Windows.Forms.Timer,它可以让回调事件在UI线程上执行,我们来做一个实验比较一下 System.Windows.Forms.T

socket通信-关于socket编程在java与c下的传输问题

问题描述 关于socket编程在java与c下的传输问题 最近在做一个项目,使用c写的客户端,用java写的服务器,客户端传输结构体,采用函数memcpy转换为字符串传输,那么在服务器端应该如何接受并解析??目前为止本人一直接受到的都是乱码 解决方案 Java Socket 网络编程问题剖析Java socket编程时readLine()问题网络编程感想(一)基于socket传输延迟问题---------------------- 解决方案二: 检查双方编码是否一致? 解决方案三: 是不是输入流

Socket编程指南及示例程序

例子代码就在我的博客中,包括六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具工程,和此小工具的所有运行时库.资源和执行程序.代码的压缩包位置是http://www.blogjava.net/Files/wxb_nudt/socket_src.rar. 1         前言 在一些常用的编程技术中,Socket网络编程可以说是最简单的一种.而且Socket编程需要的基础知识很少,适合初学者学习网络编程.目前支持网络传输的技术.语言和工具繁多,但是大部分都是基于Socke