创建了个简单的服务器端程序,运行后却失去响应,也不报错!不知道为什么?

问题描述

请大家帮忙看看,到底是代码写错了,还是我的机器的设置问题!大家好!我刚接触网络通信,就自己照着例子编了个服务器端的小程序,但一运行就失去响应,也不报错,请大家帮忙看看,到底是程序的问题,还是机器防火墙的问题!谢谢!这是我的源代码:DimMyIPAsIPAddressDimMyReceiveByte(100)AsSystem.ByteDimMyLength,iAsIntegerDimMyInfoAsASCIIEncodingTryMyIP=IPAddress.Parse(Me.TextBox1.Text)MyListener=NewTcpListener(MyIP,Convert.ToInt16(Me.TextBox2.Text))MyListener.Start()Me.RichTextBox1.Text="成功创建服务器,正在监听客户端信息。。。。"&vbCrLfMySocket=MyListener.AcceptSocket()Me.RichTextBox1.Text="成功连接:"+MySocket.RemoteEndPoint.ToString+vbCrLfMyLength=MySocket.Receive(MyReceiveByte)Fori=0ToMyLength-1Step1Me.RichTextBox1.Text=Convert.ToChar(MyReceiveByte(i))NextMyInfo=NewASCIIEncoding()MySocket.Send(MyInfo.GetBytes("FromServer!"))CatchexAsExceptionMsgBox(ex.Message)EndTry

解决方案

解决方案二:
你写的是同步代码,运行MySocket=MyListener.AcceptSocket()这句时,当没有外部连接时,程序会在这里发生阻塞
解决方案三:
Me.RichTextBox1.Text="成功连接:"+MySocket.RemoteEndPoint.ToString+vbCrLf这句话有没有被执行?如果你是说这句话没有响应,那么就得看看客户端的代码了,也许是连接IP的问题,也许是端口的问题MySocket=MyListener.AcceptSocket()这里会发生阻塞,就是会被挂起,等待连接请求,当有连接请求时再发生后续操作,所以不是失去响应了。
解决方案四:
那请问大家,怎么才能防止没有外部连接时程序发生的阻塞呢?
解决方案五:
那请问大家,怎么才能防止没有外部连接时程序发生的阻塞呢?----------采用线程侦听连接请求,可以解决阻塞的问题。
解决方案六:
采用线程侦听连接请求,可以解决阻塞的问题请问能给个实例吗?刚接触网络通信,很多地方还不太懂,上面那段程序也是照一个例子写的。如果有就太谢谢了!

时间: 2024-09-28 05:27:42

创建了个简单的服务器端程序,运行后却失去响应,也不报错!不知道为什么?的相关文章

程序运行就闪退,log日志报错如下,求大神支招

问题描述 程序运行就闪退,log日志报错如下,求大神支招 05-24 18:28:21.920 32733-32733/com.example.administrator.myapplication W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x415ebc38) 解决方案 这信息也太少了... 解决方案二: 0.0,稍等 05-24 18:35:47.070 843-1911/? W/Temper

cmd命令执行jav...-用cmd命令执行java程序后,无响应,无报错

问题描述 用cmd命令执行java程序后,无响应,无报错 如图,回车执行后,无响应,简单问题,新手诚心提问,望不吝赐教. 解决方案 可能你的那个jar包就没有输出. 解决方案二: 无响应,无报错,说明你运行的程序已经正确的运行,结果就是这样没有响应 解决方案三: 可能他就是这样的一个包,做了该做的,就没有输出 解决方案四: 还要看你的程序是否按期望的结果运行了.是不是做了对应的动作,如果没有,那么就有可能程序虽然没出错,但是有bug 解决方案五: 应该输出什么?程序要实现什么

可以在eclipse运行的程序打包后 使用一些功能就会报错

问题描述 入口函数在CommandLineRunner里面,其中调用了MyCheckUnreachableCode_tijiao的MyCheckUnreachableCode方法,来检查一些不可达代码,程序在eclipse中配置好参数运行正常.但是将源码打包后(打包工具用的这个开源项目自身写好的一个build.xml文件,直接用antbuild而成),如果不加参数会提示usge()的内容,但是一旦加了一个参数就会报:D:mycoderclosure-compilerbuild>java-jarc

android-Android程序运行后非常卡怎么回事?

问题描述 Android程序运行后非常卡怎么回事? Android程序运行后非常卡怎么回事? Android程序运行后非常卡怎么回事? 解决方案 解决方案二: 原因可能是: 1)你的设备配置太低 2)你的程序实现有问题,占用 CPU 太多 解决方案三: 可能是程序问题,换个机器试试,如果是模拟器运行的话,可能是电脑配置问题, 解决方案四: 1,你的手机配置低 2. 你的程序垃圾代码太多,或者逻辑太复杂,线程太多等等 解决方案五: 卡顿原因很多啊,建议看看性能优化,推荐给你一个网址 http://

mfc-MFC程序运行后按键响应的问题

问题描述 MFC程序运行后按键响应的问题 写的是一个类似视频播放功能的程序(现在写的这段只要具备这个功能,后期还要加上图像处理,暂且就当是个播放器吧) 按下start后,读入视频,是使用opencv的,在按键响应的代码块里,代码如下: std::string videoFile = "d:/123.mp4"; cv::VideoCapture capture; capture.open(videoFile); if (!capture.isOpened()){ MessageBox(&

跪求 帮忙-VC++6.0 环境下,怎么能够使程序运行后的黑框直接变成全屏显示

问题描述 VC++6.0 环境下,怎么能够使程序运行后的黑框直接变成全屏显示 VC++6.0 环境下,win32 console application下编一个什么样的程序能够使输出的黑框变成全屏?例如 #include main() { printf("你好n"); } 这个简单程序中添加上哪些代码就能够使输出的黑框直接占满整个电脑屏幕?麻烦哪位大侠给帮个忙,并把修改后的完整程序附上,小弟不胜感激!

test- 以下程序运行后的打印结果是______(需要写上分析思路)

问题描述 以下程序运行后的打印结果是______(需要写上分析思路) #include int sum(int a, int b) { return a + b; } int two(int n) { return n * 2; } void test(int n) { printf("%dn", two(n)); } int main() { test( sum(10, 11) ); return 0; } 解决方案 sum(10, 11) 得到21 test输出 two(21),2

iostream-为什么我这个c++程序运行后直接关掉了窗口,就是应该运行出来了,但是还没来得及看结果就被自动关了

问题描述 为什么我这个c++程序运行后直接关掉了窗口,就是应该运行出来了,但是还没来得及看结果就被自动关了 程序代码如下: #include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { double daphne = 100.0; double cleo = 100.0; const double rate_1 = 0.1; const double r

启动-程序运行后自动关闭,在dos下出现这个错?

问题描述 程序运行后自动关闭,在dos下出现这个错? Exception:System.IO.FileLoadException: Could not load file or assembly 'SharpSvn.dll' or one of its dependencies. 由于应用程序配置不正确,应用程序未能启动.重新安装应用程序可能会纠正这个问题. (Exception from HRESULT: 0x800736B1) File name: 'SharpSvn.dll' 解决方案 S