问题描述
请大家帮忙看看,到底是代码写错了,还是我的机器的设置问题!大家好!我刚接触网络通信,就自己照着例子编了个服务器端的小程序,但一运行就失去响应,也不报错,请大家帮忙看看,到底是程序的问题,还是机器防火墙的问题!谢谢!这是我的源代码: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()这里会发生阻塞,就是会被挂起,等待连接请求,当有连接请求时再发生后续操作,所以不是失去响应了。
解决方案四:
那请问大家,怎么才能防止没有外部连接时程序发生的阻塞呢?
解决方案五:
那请问大家,怎么才能防止没有外部连接时程序发生的阻塞呢?----------采用线程侦听连接请求,可以解决阻塞的问题。
解决方案六:
采用线程侦听连接请求,可以解决阻塞的问题请问能给个实例吗?刚接触网络通信,很多地方还不太懂,上面那段程序也是照一个例子写的。如果有就太谢谢了!