socket.Receive 堵塞问题

问题描述

publicForm1(){InitializeComponent();System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls=false;intport=6678;listener=newTcpListener(port);listener.Start();Threadthread=newThread(newThreadStart(reControlCode));thread.Start();}privatevoidreControlCode(){try{//设置接收套接字,接收listener.AcceptSocket是返回已经接收的客户的请求socket=listener.AcceptSocket();while(socket.Connected){stringstr="";stringss="";byte[]recvBytes=newbyte[1024];intbytes=0;while(true){bytes=socket.Receive(recvBytes,recvBytes.Length,0);if(bytes<=0)break;ss+=Encoding.ASCII.GetString(recvBytes,0,bytes);}switch(ss){case"openstar":str="true";SendMessage(str);break;default:break;}}}catch{}}

这个数据读完之后运行到bytes=socket.Receive(recvBytes,recvBytes.Length,0);就跳出去了,大家帮我解决一下,谢谢啊

时间: 2024-08-27 08:37:39

socket.Receive 堵塞问题的相关文章

使用 Socket.Receive 方法接收資料時要如何判斷資料已全部接收完畢??

问题描述 我目前的方法是Socket.Available這個屬性來實作,如以下的代碼:while(Socket.Available>0)....略Socket.Receive}但是Socket.Available只是取得已經從網路接收的資料量而已..所以如果網路回應的比較慢,資料還沒有被讀入到緩衝區內..那Socket.Available就會返回0,直到又從網路接收到新的資料後Socket.Available才會大於0因此很多時候上面的代碼根本還沒把資料全部接收完畢就跳離迴圈了!!我搜尋很多文章

c# FTP下载大文件 socket.receive卡死 如何解决

问题描述 大概的代码如下:this.sendCommand("RETR"+strRemoteFileName);if(this.mIntReplyCode!=150&&this.mIntReplyCode!=125&&this.mIntReplyCode!=226&&this.mIntReplyCode!=250){fileStream2.Close();thrownewIOException(this.mStrReply.Substri

socket编程学习笔记(2), C#网络编程概念性介绍

C#网络编程实际就是对WinSock进行了进一步的包装. 1. IPAddress,IPEndPoint, SocketAddress类 IPAddress就是一个IP 地址类, IPEndPoint就是IPAddress+Port,对应的就是sockaddr_in这个struct. SocketAddress类可以存储IPEndPoint类序列化以后的信息. 1.1 这两个类常用和注意的一些地方:¼ 1) IPAddress ip = IPAddress.Parse("192.168.123.

Socket 通信原理(Android客户端和服务器以TCP&amp;amp;&amp;amp;UDP方式互通)

ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当,还望指教. 一.Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据.而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求. 那

Android Socket通信详解_Android

一.Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据.而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求. 那么,什么是socket?Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通信.通过

Java Socket编程(四)

编程 重复和并发服务器 所有的这些调用都可以掷出一个UnknownHostException违例.如果一台计算机没有连接上DNS服务器,或者主机的确没有找到,这个违例就会被掷出.如果一台计算机没有一个激活的TCP/IP配置,getLocalHost()也为失败并掷出一个违例. 一旦一个地址被确定了,数据报就可以被送出了.下面的程序传输了一个字符串给目的socket: String toSend = "This is the data to send!"); byte[] sendbuf

PHP和Socket

文章:   PHP And Socket书名: <PHP Game Programming>作者:   Matt Rutledget翻译:   heiyeluren <heiyeluren_gmail_com> ◇ Socket基础◇ 产生一个服务器◇  产生一个客户端 在这一章里你将了解到迷人而又让人容易糊涂的套接字(Sockets).Sockets在PHP中是没有充分利用的功能.今天你将看到产生一个能使用客户端连接的服务器,并在客户端使用socket进行连接,服务器端将详细的处

C#.Net网络程序开发-Socket篇

程序|网络 Microsoft.Net Framework为应用程序访问Internet提供了分层的.可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序..Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断

C#.Net网络Socket程序开发

Microsoft.Net Framework为应用程序访问Internet提供了分层的.可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序..Net类采用的分层结构允许应用程序在不同的控制级别访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断扩展的需要.