关于vb.net中socket编程实例:服务器端的一些问题

当客户端连接服务器时怎么取得客户端IP地址?要详细的实例谢谢了,回答之后加分!要详细的实例,谢谢!大家帮帮忙,实在没办法只能到这里麻烦你们了!!!!!!... 当客户端连接服务器时怎么取得客户端IP地址? 要详细的实例谢谢了,回答之后加分! 要详细的实例,谢谢! 大家帮帮忙,实在没办法只能到这里麻烦你们了!!!!!! 展开
 我来答
听岚逸畔
推荐于2018-03-26 · TA获得超过116个赞
知道小有建树答主
回答量:93
采纳率:0%
帮助的人:141万
展开全部
Socket类连接后 可以通过类中的 RemoteEndPoint 来获取远程IP和端口信息.
要注意的是.需要将它强制转化为 IPEndPoint类型 然后通过 IPEndPoint.Address以及IPEndPoint.Port来获取对应的IP及端口

例:
Dim REV_SCK As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
'这里创建一个UDP Socket连接的实例 TCP也是一样的

'省略SOCKET连接的代码 当SOCKET连接成功后 可以用下面的语句获取远程信息
Dim IP as string ,Port as integer
'定义IP和Port变量 用来保存地址及端口
IP = IPAddress.Parse(CType(REV_SCK.RemoteEndPoint, IPEndPoint).Address.ToString())
Port = IPAddress.Parse(CType(REV_SCK.RemoteEndPoint, IPEndPoint).Port)
追问
能写一个从服务器启动开始的例子吗? 谢谢哈! 主要是开始线程侦听的内容!!还有怎么接受客户端的连接请求。。
追答
以Udp做为例子吧.
接收数据需要一个Socket实例

Dim REV_SCK As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)

'要接收数据需要发送方至少获取两个信息 即 接收方IP及端口
'接收方的本地IP可以通过下面的方式获取

Dim hostName As String = Dns.GetHostName
Dim ip As IPAddress = Dns.GetHostByName(hostName).AddressList.GetValue(0)
'IP就是本地IP地址
'而端口则是根据自己的定义来绑定
Try
REV_SCK.Bind(New IPEndPoint(ip, port))
Catch ex As Exception
MsgBox(ex.Message)
'这里写出错代码

End Try

'接收信息的方法是写一个获取接收信息的函数,然后委托一个新线程去调用它
'WaitData表示一个循环接收信息的函数 代码如下

While True
Dim bytes(1024) As Byte '用来存储接收到的字节
REV_SCK.Receive(bytes)
Dim i As Integer
For i = 0 To 1024
If bytes(i) = 0 Then Exit For
Next
REV_STR = Encoding.UTF8.GetString(bytes, 0, i)
End While
'上面的代码中 REV_STR是一个全局变量.然后读取REV_STR的值 就可以获取接收的信息

'WaitData写完后 建立新线程去调用它

Dim REV_THREAD As Thread
'REV_THREAD线程全局变量
REV_THREAD = New Thread(AddressOf WaitData)
'线程委托
REV_THREAD.Start()
'线程启动
FMUD1
2014-03-26 · TA获得超过1008个赞
知道大有可为答主
回答量:1289
采纳率:71%
帮助的人:892万
展开全部
Dim IpAddress() As System.Net.IPAddress = (System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName))’返回本地主机的所有可用ip地址。
For Each Address In IpAddress‘遍历本地的所有可用ip地址。
If Address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then
'能够进入这里,那么address为ip4地址。
End If
Next
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
假情假意79
2014-03-26 · TA获得超过1031个赞
知道答主
回答量:58
采纳率:0%
帮助的人:20.1万
展开全部
你好,你可以下载一个IP下课,就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一个yy的世界ix
2014-03-26 · TA获得超过709个赞
知道答主
回答量:231
采纳率:0%
帮助的人:119万
展开全部
第三方了空间的老公凯立德减肥给
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式