标题:[求助]关于线程的一个程序
只看楼主
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
结帖率:40%
 问题点数:0 回复次数:5 
[求助]关于线程的一个程序

代码如下:
Private Sub StartListen()
intport = Integer.Parse(TextBox1.Text)
Try
mysocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
mysocket.Bind(New IPEndPoint(IPAddress.Parse("127.0.0.1"), intport))
mysocket.Listen(10)
TextBox2.Text = "等待Socket客户端连机中......." + vbCrLf

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'启动监听按钮的代码
Dim mythread As New Thread(New ThreadStart(AddressOf StartListen))
mythread.Start()

End Sub
划红色的部分,不太理解,<1>线程在这里有什么作用?直接调用过程不可以吗? <2>Addressof是什么东东哦,构造函数里面的参数AddressOf StartListen是什么东东?望大家帮忙,谢谢

搜索更多相关主题的帖子: 线程 mysocket New 
2006-12-12 20:32
lkjkf
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-4-21
得分:0 

这段代码应该是Socket通讯的代码,而且是服务器上刚开始建立侦听的代码.
看来你是不太懂线程的概念.
线程存在与主进程之内,一个程序可以运行多个线程.
怎么说呢?就好比是你用左手画圆,右手画方块,两只手相互不影响,在同一个时间能够执行多个的任务.
这个线程就是用来等待客户端连接的功能.服务器除了等待,还需要处理其他的东西,所以用一个线程来做.
AddressOf 后面跟的是方法的名字,线程就是从这个方法启动.


 夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远。
2006-12-14 14:11
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
得分:0 
谢谢,我好象有点懂了,意思就说,如果直接调用StartListen方法,如果没有客户端连接过来,就会一直等监听下去,直到客户端连接上为;如果,用了线程,可以不等到客户端连接过来,而去执行程序的其他功能对吧

大家一起努力,共同打造未来!!
2006-12-14 16:39
myth_sky
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-12-31
得分:0 
没错`~~~
2007-01-04 16:51
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
得分:0 

好象不开新的线程,主程序就停了,也就是"没有响应"


E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2007-01-04 18:00
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 

那就用多线程.


飘过~~
2007-01-04 20:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-109101-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.125210 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved